From 43a322430e7e6dcea64242bec6918037da160986 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期一, 04 十二月 2023 10:50:23 +0800 Subject: [PATCH] 分转元 --- consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java | 151 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 114 insertions(+), 37 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 0bef5bb..1984a5b 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,24 +1,29 @@ 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.IdUtil; 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.LWhProcureModelParam; +import com.consum.base.pojo.excel.ProcureExcelTemplate; 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; import com.consum.base.pojo.response.LWhFormProcureExtendVO; 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.BaseGoodsTemplateService; +import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.LOrgSupplierServiceImpl; import com.consum.base.service.LWhFormProcureCoreService; import com.consum.base.service.LWhFormProcureGoodsService; @@ -35,7 +40,7 @@ import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; -import com.walker.infrastructure.utils.NumberGenerator; +import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -47,14 +52,16 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; 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; @@ -72,9 +79,7 @@ @Resource private LWhFormProcureService lWhFormProcureService; @Resource - private BaseWarehouseServiceImpl baseWarehouseService; - @Resource - private FinSysTenantServiceImpl finSysTenantService; + private BaseWarehouseService baseWarehouseService; @Resource private CodeGeneratorService codeGeneratorService; @Resource @@ -84,7 +89,7 @@ @Resource private LWhGoodsService lWhGoodsService; @Resource - private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; + private BaseGoodsTemplateService baseGoodsTemplateService; @Resource private LWhProcureModelService lWhProcureModelService; @Resource @@ -94,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涓嶈兘涓虹┖"); @@ -104,7 +117,7 @@ String tenantId = sysTenantUser.getTenantId(); String tenantName = sysTenantUser.getTenantName(); - List<LWhFormProcureGoodsParams> procureGoods = param.getProcureGoods(); + List<LWhFormProcureGoodsInfoParam> procureGoods = param.getProcureGoods(); if (CollectionUtils.isEmpty(procureGoods)) { return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�"); } @@ -113,7 +126,7 @@ // 閲囪喘鍗昳d Long whFormProcureId = param.getId(); if (whFormProcureId == null) { - whFormProcureId = NumberGenerator.getLongSequenceNumber(); + whFormProcureId = IdUtil.generateId(); } long procureTime = Long.valueOf(param.getProcureTime()); @@ -123,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(); @@ -132,12 +145,12 @@ supplierList.add(supplier); } - List<LWhProcureModelParams> models = procureGoodT.getModels(); + List<LWhProcureModelParam> models = procureGoodT.getModels(); if (CollectionUtils.isEmpty(models)) { return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�"); } LWhFormProcureGoods procureGood = new LWhFormProcureGoods(); - long fromProcureGoodsId = NumberGenerator.getLongSequenceNumber(); + long fromProcureGoodsId = IdUtil.generateId(); procureGood.setId(fromProcureGoodsId); procureGood.setWhFormProcureId(whFormProcureId); procureGood.setBaseCategoryId(baseCategoryId); @@ -146,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暣鏁�"); @@ -166,9 +179,9 @@ } 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.setId(IdUtil.generateId()); model.setFromProcureGoodsId(fromProcureGoodsId); model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0); model.setBusinessId(whFormProcureId); @@ -178,6 +191,7 @@ model.setCounts(counts); model.setWorehouseCount(goodsModelNum); model.setSupplier(supplier); + model.setTotalAmount(price * counts); procureModelList.add(model); } procureGoodList.add(procureGood); @@ -203,7 +217,7 @@ supplierList.forEach(supplier -> { LOrgSupplier lOrgSupplier = new LOrgSupplier(); - lOrgSupplier.setId(NumberGenerator.getLongSequenceNumber()); + lOrgSupplier.setId(IdUtil.generateId()); lOrgSupplier.setAgencyId(tenantId); lOrgSupplier.setAgencyName(tenantName); lOrgSupplier.setSupplier(supplier); @@ -223,13 +237,22 @@ @ApiImplicitParam(name = "param", value = "閲囪喘鏌ヨ鏉′欢", required = true, dataType = "FormProcureQryDto", paramType = "query") }) @GetMapping("/list") - public ResponseValue queryFormProcureList(FormProcureQry 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("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - - 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)) { @@ -245,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); @@ -257,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); } @@ -269,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); @@ -323,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); @@ -331,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(); @@ -360,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); @@ -373,6 +407,10 @@ @GetMapping("detail/list") 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("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); @@ -381,4 +419,43 @@ GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQry); return ResponseValue.success(genericPager); } + + @ApiOperation(value = "閲囪喘鍗曞鍑�", notes = "閲囪喘鍗曞鍑�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "閲囪喘鍗昳d", required = true, dataType = "Long", paramType = "query") + }) + @GetMapping("/list/export") + public void export(Long id, HttpServletResponse response) throws Exception { + TemplateExportParams params = new TemplateExportParams( + "import/閲囪喘鍏ュ簱鍗�.xls"); + params.setHeadingStartRow(2); + FinSysTenantUser sysInfo = this.getSysInfo(); + if (sysInfo == null) { + throw new RuntimeException("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + + List<ProcureExcelTemplate> exportList = lWhFormProcureService.getExportList(id); + if (CollectionUtils.isEmpty(exportList)) { + throw new RuntimeException("鏁版嵁涓虹┖"); + } + + int countNum = exportList.stream().filter(item -> item.getNum() != null).mapToInt(ProcureExcelTemplate::getNum).sum(); + double totalAmount = exportList.stream().filter(export -> export.getTotalAmount() != null).mapToDouble(ProcureExcelTemplate::getAmount).sum(); + Optional<ProcureExcelTemplate> first = exportList.stream().findFirst(); + ProcureExcelTemplate templateExcelExport = first.get(); + String businessFormCode = templateExcelExport.getBusinessFormCode(); + Long createTime = templateExcelExport.getCreateTime(); + String operatorName = templateExcelExport.getOperatorName(); + + Map<String, Object> map = new HashMap<>(); + map.put("code", businessFormCode); + map.put("date", DateUtils.toShowDate(createTime)); + map.put("name", operatorName); + map.put("countNum", countNum); + map.put("totalAmount", totalAmount); + + Workbook workbook = ExcelExportUtil.exportExcel(params, ProcureExcelTemplate.class, exportList, map); + downLoadExcel("閲囪喘鍏ュ簱鍗�", response, workbook); + + } } -- Gitblit v1.9.1