| | |
| | | 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.core.utils.PageUtil; |
| | | import com.consum.base.pojo.LWhFormProcureGoodsInfoParam; |
| | | import com.consum.base.pojo.LWhFormProcureParam; |
| | | 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.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; |
| | | import com.consum.base.service.LWhFormProcureService; |
| | | import com.consum.base.service.LWhGoodsService; |
| | | import com.consum.base.service.LWhProcureModelService; |
| | | import com.consum.model.po.BaseGoodsTemplate; |
| | | import com.consum.model.po.BaseWarehouse; |
| | | import com.consum.model.po.FinSysTenantUser; |
| | | import com.consum.model.po.LOrgSupplier; |
| | | import com.consum.model.po.LWhFormProcure; |
| | | import com.consum.model.po.LWhFormProcureGoods; |
| | | import com.consum.model.po.LWhProcureModel; |
| | | 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.DateUtils; |
| | | import com.walker.web.ResponseValue; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import java.io.IOException; |
| | | import java.lang.reflect.Field; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | 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.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import com.alibaba.excel.EasyExcelFactory; |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.event.AnalysisEventListener; |
| | | import com.alibaba.excel.exception.ExcelDataConvertException; |
| | | import com.consum.base.BaseController; |
| | | import com.consum.base.core.utils.CommonUtil; |
| | | import com.consum.base.core.utils.PageUtil; |
| | | import com.consum.base.pojo.LWhFormProcureGoodsInfoParam; |
| | | import com.consum.base.pojo.LWhFormProcureParam; |
| | | import com.consum.base.pojo.dto.GoodModelInfoDTO; |
| | | import com.consum.base.pojo.excel.ImportProcureOrderTemplate; |
| | | 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.GoodsModelVO; |
| | | import com.consum.base.pojo.response.GoodsTemplateCountVO; |
| | | import com.consum.base.pojo.response.GoodsTemplateInfoVO; |
| | | import com.consum.base.pojo.response.LWhFormProcureExtendVO; |
| | | import com.consum.base.service.BaseCategoryService; |
| | | import com.consum.base.service.LWhFormProcureGoodsService; |
| | | import com.consum.base.service.LWhFormProcureService; |
| | | import com.consum.base.service.LWhProcureModelService; |
| | | import com.consum.base.service.core.LWhFormProcureCoreService; |
| | | import com.consum.model.po.BaseCategory; |
| | | import com.consum.model.po.FinSysTenantUser; |
| | | import com.consum.model.po.LWhFormProcure; |
| | | import com.consum.model.po.LWhFormProcureGoods; |
| | | 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.DateUtils; |
| | | import com.walker.web.ResponseValue; |
| | | |
| | | import cn.afterturn.easypoi.excel.ExcelExportUtil; |
| | | import cn.afterturn.easypoi.excel.entity.TemplateExportParams; |
| | | import cn.hutool.core.util.ReflectUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | |
| | | /** |
| | | * @ClassName LWhFormProcureController |
| | |
| | | @Resource |
| | | private LWhFormProcureService lWhFormProcureService; |
| | | @Resource |
| | | private BaseWarehouseService baseWarehouseService; |
| | | @Resource |
| | | private CodeGeneratorService codeGeneratorService; |
| | | @Resource |
| | | private LWhFormProcureGoodsService lWhFormProcureGoodsService; |
| | | private LWhFormProcureGoodsService lWhFormProcureGoodsServiceImpl; |
| | | @Resource |
| | | private LWhFormProcureCoreService lWhFormProcureCoreService; |
| | | @Resource |
| | | private LWhGoodsService lWhGoodsService; |
| | | @Resource |
| | | private BaseGoodsTemplateService baseGoodsTemplateService; |
| | | @Resource |
| | | private LWhProcureModelService lWhProcureModelService; |
| | | @Resource |
| | | private LOrgSupplierServiceImpl lOrgSupplierService; |
| | | private BaseCategoryService baseCategoryService; |
| | | |
| | | /** |
| | | * @Description 新增 |
| | |
| | | } |
| | | |
| | | private ResponseValue add(LWhFormProcureParam param) { |
| | | Long warehouseId = param.getWarehouseId(); |
| | | if (param.getWarehouseId() == null) { |
| | | return ResponseValue.error("仓库ID不能为空"); |
| | | } |
| | | BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId); |
| | | FinSysTenantUser sysTenantUser = this.getSysInfo(); |
| | | String tenantId = sysTenantUser.getTenantId(); |
| | | String tenantName = sysTenantUser.getTenantName(); |
| | | |
| | | List<LWhFormProcureGoodsInfoParam> procureGoods = param.getProcureGoods(); |
| | | if (CollectionUtils.isEmpty(procureGoods)) { |
| | | return ResponseValue.error("采购单不能为空"); |
| | | } |
| | | |
| | | FinSysTenantUser sysTenantUser = this.getSysInfo(); |
| | | S_user_core currentUser = this.getCurrentUser(); |
| | | // 采购单id |
| | | Long whFormProcureId = param.getId(); |
| | | if (whFormProcureId == null) { |
| | | whFormProcureId = IdUtil.generateId(); |
| | | } |
| | | long procureTime = Long.valueOf(param.getProcureTime()); |
| | | |
| | | Set<String> supplierList = new HashSet<>(); |
| | | |
| | | ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>(); |
| | | ArrayList<LWhProcureModel> procureModelList = new ArrayList<>(); |
| | | |
| | | for (int i = 0; i < procureGoods.size(); i++) { |
| | | LWhFormProcureGoodsInfoParam procureGoodT = procureGoods.get(i); |
| | | Long baseCategoryId = procureGoodT.getBaseCategoryId(); |
| | | Long baseGoodsTemplateId = procureGoodT.getBaseGoodsTemplateId(); |
| | | String supplier = procureGoodT.getSupplier(); |
| | | // 判断当前供应商是否已存在 |
| | | if (!supplierList.contains(supplier) && !lOrgSupplierService.supplierIsContain(tenantId, supplier)) { |
| | | supplierList.add(supplier); |
| | | } |
| | | |
| | | List<LWhProcureModelParam> models = procureGoodT.getModels(); |
| | | if (CollectionUtils.isEmpty(models)) { |
| | | return ResponseValue.error("采购单不能为空"); |
| | | } |
| | | LWhFormProcureGoods procureGood = new LWhFormProcureGoods(); |
| | | long fromProcureGoodsId = IdUtil.generateId(); |
| | | procureGood.setId(fromProcureGoodsId); |
| | | procureGood.setWhFormProcureId(whFormProcureId); |
| | | procureGood.setBaseCategoryId(baseCategoryId); |
| | | procureGood.setBaseGoodsTemplateId(baseGoodsTemplateId); |
| | | // TODO 物品历史版本 |
| | | procureGood.setGoodsTemplateName(procureGoodT.getGoodsTemplateName()); |
| | | procureGood.setSupplier(supplier); |
| | | procureGood.setSort(i); |
| | | for (LWhProcureModelParam modelT : models) { |
| | | Integer counts = modelT.getCounts(); |
| | | if (counts == null || counts <= 0) { |
| | | return ResponseValue.error("型号的采购数量只能为正整数"); |
| | | } |
| | | Long price = modelT.getPrice(); |
| | | if (price == null || price <= 0) { |
| | | return ResponseValue.error("型号的采购价格只能为正数"); |
| | | } |
| | | Long baseGoodsModelsId = modelT.getBaseGoodsModelsId(); |
| | | if (baseGoodsModelsId == null) { |
| | | return ResponseValue.error("采购的价型号未找到"); |
| | | } |
| | | //查询型号信息 |
| | | Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId); |
| | | if (tempGoodsInfo == null) { |
| | | return ResponseValue.error("采购的价型号未找到"); |
| | | } |
| | | String modelName = (String) tempGoodsInfo.get("modelname"); |
| | | // 查询型号库存 |
| | | int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null); |
| | | LWhProcureModel model = new LWhProcureModel(); |
| | | model.setId(IdUtil.generateId()); |
| | | model.setFromProcureGoodsId(fromProcureGoodsId); |
| | | model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0); |
| | | model.setBusinessId(whFormProcureId); |
| | | model.setBaseGoodsModelsId(baseGoodsModelsId); |
| | | model.setBaseGoodsModelsName(modelName); |
| | | model.setPrice(price); |
| | | model.setCounts(counts); |
| | | model.setWorehouseCount(goodsModelNum); |
| | | model.setSupplier(supplier); |
| | | model.setTotalAmount(price * counts); |
| | | procureModelList.add(model); |
| | | } |
| | | procureGoodList.add(procureGood); |
| | | } |
| | | lWhFormProcureGoodsService.insertBatch(procureGoodList); |
| | | lWhProcureModelService.insertBatch(procureModelList); |
| | | |
| | | // 插入 采购单物品【L_WH_FORM_PROCURE_GOODS】 |
| | | LWhFormProcure lWhFormProcure = new LWhFormProcure(); |
| | | lWhFormProcure.setId(whFormProcureId); |
| | | lWhFormProcure.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Procure_Warehouse)); |
| | | lWhFormProcure.setWarehouseId(warehouseId); |
| | | lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName()); |
| | | lWhFormProcure.setBuyerId(currentUser.getId()); |
| | | lWhFormProcure.setBuyerName(currentUser.getNick_name()); |
| | | lWhFormProcure.setProcureTime(procureTime); |
| | | lWhFormProcure.setProcureDoc(param.getProcureDoc()); |
| | | lWhFormProcure.setBuyType(param.getBuyType()); |
| | | lWhFormProcure.setStates(1); |
| | | lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId()); |
| | | lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName()); |
| | | int result = lWhFormProcureService.insert(lWhFormProcure); |
| | | |
| | | supplierList.forEach(supplier -> { |
| | | LOrgSupplier lOrgSupplier = new LOrgSupplier(); |
| | | lOrgSupplier.setId(IdUtil.generateId()); |
| | | lOrgSupplier.setAgencyId(tenantId); |
| | | lOrgSupplier.setAgencyName(tenantName); |
| | | lOrgSupplier.setSupplier(supplier); |
| | | lOrgSupplierService.insert(lOrgSupplier); |
| | | }); |
| | | if (result > 0) { |
| | | return ResponseValue.success(1); |
| | | } |
| | | return ResponseValue.error("新增失败!"); |
| | | lWhFormProcureService.add(param, sysTenantUser, currentUser); |
| | | return ResponseValue.success(); |
| | | } |
| | | |
| | | /** |
| | | * @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() { |
| | | FormProcureQry param = CommonUtil.getObjFromReq(FormProcureQry.class); |
| | |
| | | ArrayList<FormProcureVO> result = new ArrayList<>(); |
| | | if (!CollectionUtils.isEmpty(data)) { |
| | | data.forEach(item -> { |
| | | |
| | | FormProcureVO fromProcureVO = new FormProcureVO(); |
| | | BeanUtils.copyProperties(item, fromProcureVO); |
| | | List<FromProcureTemplateInfoVO> procureTemplateInfoList = Lists.newArrayList(); |
| | | |
| | | // 查询型号数量 |
| | | String sql = "select fpg.id,BASE_CATEGORY_ID ,BASE_GOODS_TEMPLATE_ID ,GOODS_TEMPLATE_NAME ,sum(counts) count " |
| | | + "from L_WH_FORM_PROCURE_GOODS fpg left join L_WH_PROCURE_MODEL pm on fpg.id = pm.FROM_PROCURE_GOODS_ID " |
| | | + "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, new MapperUtil()); |
| | | for (Map<String, Object> map : procureModelList) { |
| | | FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FromProcureTemplateInfoVO.class); |
| | | procureTemplateInfoList.add(procureTemplateInfoVO); |
| | | } |
| | | fromProcureVO.setFromProcureTemplateInfoList(procureTemplateInfoList); |
| | | List<GoodsTemplateCountVO> procureCount = |
| | | lWhProcureModelService.getProcureCountByBusinessId(item.getId()); |
| | | fromProcureVO.setFromProcureTemplateInfoList(procureCount); |
| | | |
| | | result.add(fromProcureVO); |
| | | }); |
| | | } |
| | | try { |
| | | Field fieldDatas = GenericPager.class.getDeclaredField("datas"); |
| | | // fieldDatas.setAccessible(true); |
| | | // fieldDatas.set(genericPager, result); |
| | | ReflectUtil.setFieldValue(genericPager, fieldDatas, result); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | if (num == 0) { |
| | | return ResponseValue.error("删除失败!"); |
| | | } |
| | | lWhFormProcureGoodsService.update("delete from L_WH_FORM_PROCURE_GOODS where WH_FORM_PROCURE_ID=" + id); |
| | | lWhFormProcureGoodsServiceImpl.update("delete from L_WH_FORM_PROCURE_GOODS where WH_FORM_PROCURE_ID=" + id); |
| | | |
| | | lWhProcureModelService.update("delete from L_WH_PROCURE_MODEL where BUSINESS_TYPE =1 and BUSINESS_ID=" + id); |
| | | return ResponseValue.success(1); |
| | |
| | | * 根据id查询详情 |
| | | */ |
| | | @GetMapping("/detail") |
| | | public ResponseValue getById(Long id) throws IllegalAccessException { |
| | | public ResponseValue getById(Long id) throws Exception { |
| | | if (id == null) { |
| | | return ResponseValue.error("采购单id为空"); |
| | | } |
| | |
| | | // 物品 |
| | | LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods(); |
| | | lWhFormProcureGoods.setWhFormProcureId(id); |
| | | List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsService.select(lWhFormProcureGoods); |
| | | List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsServiceImpl.select(lWhFormProcureGoods); |
| | | |
| | | // Field fieldModels = null; |
| | | // try { |
| | | // fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); |
| | | // } catch (NoSuchFieldException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // fieldModels.setAccessible(true); |
| | | ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>(); |
| | | List<GoodsTemplateInfoVO> goodsTemplateInfoList = new ArrayList<>(); |
| | | for (LWhFormProcureGoods formProcureGood : formProcureGoods) { |
| | | LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO(); |
| | | BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsVO); |
| | | GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); |
| | | BeanUtils.copyProperties(formProcureGood, goodsTemplateInfoVO); |
| | | |
| | | Long baseGoodsTemplateId = formProcureGood.getBaseGoodsTemplateId(); |
| | | BaseGoodsTemplate queryEntity = new BaseGoodsTemplate(); |
| | | queryEntity.setId(baseGoodsTemplateId); |
| | | BaseGoodsTemplate baseGoodsTemplate = baseGoodsTemplateService.get(queryEntity); |
| | | lWhFormProcureGoodsVO.setBaseCategoryName(baseGoodsTemplate.getCategoryName()); |
| | | // 查询型号数量 |
| | | Map<String, Object> paramMap = new HashMap<>(); |
| | | paramMap.put("formProcureGoodId", formProcureGood.getId()); |
| | | String sql = "SELECT\n" + "pm.BASE_GOODS_MODELS_ID,pm.BASE_GOODS_MODELS_NAME,pm.PRICE,pm.COUNTS,pm.WOREHOUSE_COUNT,bgm.unit " + "FROM\n" |
| | | + "\tl_wh_procure_model pm\n" |
| | | + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId"; |
| | | List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); |
| | | List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); |
| | | procureModelList.forEach(item -> { |
| | | GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); |
| | | goodsModelVOList.add(goodsModelVO); |
| | | }); |
| | | // fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); |
| | | ReflectUtil.setFieldValue(lWhFormProcureGoodsVO, "models", goodsModelVOList); |
| | | List<GoodModelInfoDTO> goodsModelInfoList = |
| | | lWhProcureModelService.getGoodsModelListByBusinessId(null, formProcureGood.getId()); |
| | | if (CollectionUtils.isEmpty(goodsModelInfoList)) { |
| | | continue; |
| | | } |
| | | GoodModelInfoDTO goodModelInfoDTO = goodsModelInfoList.stream().findFirst().orElse(null); |
| | | if (goodModelInfoDTO != null) { |
| | | goodsTemplateInfoVO.setBaseCategoryName(goodModelInfoDTO.getCategoryName()); |
| | | } |
| | | List<GoodsModelVO> goodsModelList = Lists.newArrayList(); |
| | | for (GoodModelInfoDTO goodModelInfo : goodsModelInfoList) { |
| | | GoodsModelVO goodsModelVO = getGoodsModelVO(goodModelInfo); |
| | | goodsModelList.add(goodsModelVO); |
| | | } |
| | | |
| | | procureGoodsVOList.add(lWhFormProcureGoodsVO); |
| | | ReflectUtil.setFieldValue(goodsTemplateInfoVO, "models", goodsModelList); |
| | | |
| | | goodsTemplateInfoList.add(goodsTemplateInfoVO); |
| | | } |
| | | lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList); |
| | | lWhFormProcureExtendVO.setProcureGoods(goodsTemplateInfoList); |
| | | return ResponseValue.success("查询成功!", lWhFormProcureExtendVO); |
| | | } |
| | | |
| | | private GoodsModelVO getGoodsModelVO(GoodModelInfoDTO goodModelInfo) { |
| | | GoodsModelVO goodsModelVO = new GoodsModelVO(); |
| | | |
| | | goodsModelVO.setId(goodModelInfo.getId()); |
| | | goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); |
| | | goodsModelVO.setUnit(goodModelInfo.getUnit()); |
| | | goodsModelVO.setCounts(goodModelInfo.getCounts()); |
| | | goodsModelVO.setTotalAmount( |
| | | goodModelInfo.getTotalAmount() != null ? goodModelInfo.getTotalAmount().doubleValue() : null); |
| | | goodsModelVO.setWorehouseCount(goodModelInfo.getWorehouseCount()); |
| | | goodsModelVO.setPrice(goodModelInfo.getPrice()); |
| | | goodsModelVO.setBaseGoodsModelsId(goodModelInfo.getBaseGoodsModelsId()); |
| | | return goodsModelVO; |
| | | } |
| | | |
| | | @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("detail/list") |
| | | public ResponseValue queryFormProcureDetailList() { |
| | | FormProcureQry formProcureQry = CommonUtil.getObjFromReq(FormProcureQry.class); |
| | |
| | | CommonUtil.copyProperties(formProcureQry, param2); |
| | | formProcureQry = param2; |
| | | |
| | | S_user_core currentUser = this.getCurrentUser(); |
| | | if (currentUser == null) { |
| | | FinSysTenantUser sysInfo = this.getSysInfo(); |
| | | if (sysInfo == null) { |
| | | return ResponseValue.error("登录用户信息不存在"); |
| | | } |
| | | |
| | | // formProcureQry.setAgencyId(Long.valueOf(sysInfo.getTenantId())); |
| | | GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQry); |
| | | return ResponseValue.success(genericPager); |
| | | } |
| | | |
| | | @ApiOperation(value = "采购单导出", notes = "采购单导出") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "id", value = "采购单id", required = true, dataType = "Long", paramType = "query") |
| | | }) |
| | | @ApiImplicitParam(name = "id", value = "采购单id", required = true, dataType = "Long", paramType = "query")}) |
| | | @GetMapping("/list/export") |
| | | public void export(Long id, HttpServletResponse response) throws Exception { |
| | | TemplateExportParams params = new TemplateExportParams( |
| | | "import/采购入库单.xls"); |
| | | public ResponseValue<String> 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("数据为空"); |
| | | } |
| | | |
| | | int countNum = exportList.stream().filter(item -> item.getNum() != null).mapToInt(ProcureExcelTemplate::getNum).sum(); |
| | | int totalAmount = exportList.stream().filter(export -> export.getTotalAmount() != null).mapToInt(ProcureExcelTemplate::getTotalAmount).sum(); |
| | | 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(); |
| | |
| | | map.put("totalAmount", totalAmount); |
| | | |
| | | Workbook workbook = ExcelExportUtil.exportExcel(params, ProcureExcelTemplate.class, exportList, map); |
| | | downLoadExcel("采购入库单", response, workbook); |
| | | String filePath = downLoadExcel("采购入库单", workbook); |
| | | return ResponseValue.success("导出成功", filePath); |
| | | |
| | | } |
| | | |
| | | @ApiOperation(value = "采购单导入", notes = "采购单导入") |
| | | @PostMapping("/import") |
| | | public ResponseValue upload(MultipartFile file) throws IOException { |
| | | String originalFilename = file.getOriginalFilename(); |
| | | if (!".xls".endsWith(originalFilename)) { |
| | | return ResponseValue.error("文件格式有误!"); |
| | | } |
| | | FinSysTenantUser sysInfo = this.getSysInfo(); |
| | | if (sysInfo == null) { |
| | | return ResponseValue.error("当前登录用户为空"); |
| | | } |
| | | EasyExcelFactory.read(file.getInputStream(), ImportProcureOrderTemplate.class, |
| | | new AnalysisEventListener<ImportProcureOrderTemplate>() { |
| | | List<LWhFormProcureParam> list = Lists.newArrayList(); |
| | | |
| | | @Override |
| | | public void invoke(ImportProcureOrderTemplate data, AnalysisContext analysisContext) { |
| | | String categoryOne = data.getCategoryOne(); |
| | | String categoryTwo = data.getCategoryTwo(); |
| | | String categoryThree = data.getCategoryThree(); |
| | | String goodsName = data.getGoodsName(); |
| | | String goodModelName = data.getGoodModelName(); |
| | | String unit = data.getUnit(); |
| | | String type = data.getType(); |
| | | String agencyName = data.getAgencyName(); |
| | | String warehouseName = data.getWarehouseName(); |
| | | String supplierName = data.getSupplierName(); |
| | | String price = data.getPrice(); |
| | | String num = data.getNum(); |
| | | |
| | | BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); |
| | | Long categoryId = baseCategory.getId(); |
| | | |
| | | // Optional<BaseGoodsTemplateParam> optional = |
| | | // list.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); |
| | | // |
| | | // if (optional.isPresent()) { |
| | | // BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); |
| | | // baseGoodsModels.setModelName(goodModelName); |
| | | // baseGoodsModels.setUnit(unit); |
| | | // optional.get().getModels().add(baseGoodsModels); |
| | | // } else { |
| | | // BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam(); |
| | | // baseGoodsTemplate.setCategoryId(categoryId); |
| | | // baseGoodsTemplate.setGoodsName(goodsName); |
| | | // baseGoodsTemplate.setStates(1); |
| | | // FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName); |
| | | // baseGoodsTemplate.setAgencyId(finSysTenant.getId()); |
| | | // baseGoodsTemplate.setAgencyName(agencyName); |
| | | // |
| | | // List<BaseGoodsModels> models = new ArrayList<>(); |
| | | // BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); |
| | | // baseGoodsModels.setModelName(goodModelName); |
| | | // baseGoodsModels.setUnit(unit); |
| | | // models.add(baseGoodsModels); |
| | | // baseGoodsTemplate.setModels(models); |
| | | // |
| | | // list.add(baseGoodsTemplate); |
| | | // } |
| | | } |
| | | |
| | | @Override |
| | | public void doAfterAllAnalysed(AnalysisContext analysisContext) { |
| | | for (LWhFormProcureParam procureParam : list) { |
| | | // lWhFormProcureService.add(procureParam, null); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onException(Exception exception, AnalysisContext analysisContext) throws Exception { |
| | | if (exception instanceof ExcelDataConvertException) { |
| | | ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; |
| | | Integer row = excelDataConvertException.getRowIndex() + 1; |
| | | Integer column = excelDataConvertException.getColumnIndex() + 1; |
| | | throw new RuntimeException("第" + row + "行,第" + column + "列解析异常,请正确填写"); |
| | | } else { |
| | | throw new RuntimeException(exception.getMessage()); |
| | | } |
| | | } |
| | | }).sheet(0).doRead(); |
| | | |
| | | return ResponseValue.success("导入成功!"); |
| | | } |
| | | |
| | | } |