| | |
| | | package com.consum.base.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.apache.commons.compress.utils.Lists; |
| | |
| | | |
| | | import com.consum.base.core.CodeGeneratorEnum; |
| | | import com.consum.base.core.CodeGeneratorService; |
| | | import com.consum.base.core.utils.CurrencyUtil; |
| | | 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.LWhFormScrappedGoodsInfoParam; |
| | | import com.consum.base.pojo.LWhFormScrappedGoodsModelParams; |
| | | import com.consum.base.pojo.LWhFormScrappedParam; |
| | | import com.consum.base.pojo.dto.GoodModelInfoDTO; |
| | | import com.consum.base.pojo.excel.ScrappedInfoExcelTemplate; |
| | | import com.consum.base.pojo.query.LWhFormScrappedQry; |
| | | import com.consum.base.pojo.response.FormScrappedGoodsDetailVO; |
| | | import com.consum.base.pojo.response.FormScrappedGoodsVO; |
| | | 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.LWhFormScrappedExtendVO; |
| | | import com.consum.base.service.BaseGoodsModelsService; |
| | | import com.consum.base.service.BaseGoodsTemplateService; |
| | | import com.consum.base.service.BaseWarehouseService; |
| | | import com.consum.base.service.FinSysTenantDepartmentService; |
| | | import com.consum.base.service.LWhFormScrappedCoreService; |
| | | import com.consum.base.service.LWhFormScrappedGoodsService; |
| | | import com.consum.base.service.LWhFormScrappedService; |
| | | import com.consum.base.service.LWhGoodsService; |
| | |
| | | import com.consum.model.po.SDictData; |
| | | import com.iplatform.model.po.S_user_core; |
| | | import com.walker.db.page.GenericPager; |
| | | import com.walker.infrastructure.utils.DateUtils; |
| | | import com.walker.infrastructure.utils.StringUtils; |
| | | import com.walker.jdbc.service.BaseServiceImpl; |
| | | |
| | |
| | | lWhFormScrapped.setOperatorName(sysInfo.getUserName()); |
| | | lWhFormScrapped.setDealTime(param.getDealTime()); |
| | | lWhFormScrapped.setStates(0); |
| | | lWhFormScrapped.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | lWhFormScrapped.setUploadFiles(param.getUploadFiles()); |
| | | // 根据部门id查询部门 |
| | | FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId()); |
| | |
| | | LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods(); |
| | | scrappedGoods.setId(IdUtil.generateId()); |
| | | // 根据物品型号查询物品库存 |
| | | int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, |
| | | scrappedGoods.getBaseGoodsModelsId(), 1, null); |
| | | List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId)); |
| | | int goodsNum = |
| | | lWhGoodsService.queryGoodsModelNum(0, warehouseIds, scrappedGoods.getBaseGoodsModelsId(), 1, null); |
| | | if (params.getCounts() > goodsNum) { |
| | | log.error("报废数量大于库存数量"); |
| | | return 0; |
| | |
| | | scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName()); |
| | | scrappedGoods.setUnit(baseGoodsModels.getUnit()); |
| | | } |
| | | |
| | | scrappedGoodsList.add(scrappedGoods); |
| | | } |
| | | int flag2 = this.scrappedGoodsService.insertBatch(scrappedGoodsList); |
| | | if (flag2 != scrappedGoodsList.size()) { |
| | | if (flag2 == 0) { |
| | | log.error("新增报废单物品记录 失败"); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return 0; |
| | |
| | | if (lWhFormScrapped != null) { |
| | | BeanUtils.copyProperties(lWhFormScrapped, scrappedExtend); |
| | | } |
| | | // 2.查询报废单 |
| | | List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id); |
| | | // 2.查询报废单商品信息 |
| | | List<GoodModelInfoDTO> scrappedGoodsInfoList = scrappedGoodsService.getScrappedGoodsByScrappedId(id); |
| | | // 通过baseGoodsTemplateId 进行分组 |
| | | Map<Long, List<LWhFormScrappedGoods>> map = |
| | | scrappedGoodsList.stream().collect(Collectors.groupingBy(LWhFormScrappedGoods::getBaseGoodsTemplateId)); |
| | | Map<Long, List<GoodModelInfoDTO>> map = |
| | | scrappedGoodsInfoList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); |
| | | // 循环map的key和value |
| | | List<FormScrappedGoodsVO> scrappedGoodsVO = Lists.newArrayList(); |
| | | for (Map.Entry<Long, List<LWhFormScrappedGoods>> entry : map.entrySet()) { |
| | | Long baseGoodsTemplateId = entry.getKey(); |
| | | List<LWhFormScrappedGoods> goodsList = entry.getValue(); |
| | | LWhFormScrappedGoods lWhFormScrappedGoods = goodsList.stream().findFirst().get(); |
| | | FormScrappedGoodsVO formScrappedGoodsVO = new FormScrappedGoodsVO(); |
| | | formScrappedGoodsVO.setBaseGoodsTemplateId(baseGoodsTemplateId); |
| | | formScrappedGoodsVO.setGoodsName(lWhFormScrappedGoods.getGoodsTemplateName()); |
| | | |
| | | String sql = "select CATEGORY_NAME from base_goods_template where id = :id"; |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("id", baseGoodsTemplateId); |
| | | List<Map<String, Object>> goodTemplate = this.select(sql, param, new MapperUtil()); |
| | | if (!CollectionUtils.isEmpty(goodTemplate)) { |
| | | Optional<Map<String, Object>> first = goodTemplate.stream().findFirst(); |
| | | Map<String, Object> objectMap = first.get(); |
| | | formScrappedGoodsVO.setCategoryName(objectMap.get("categoryName").toString()); |
| | | List<GoodsTemplateInfoVO> scrappedGoodsVO = Lists.newArrayList(); |
| | | for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : map.entrySet()) { |
| | | List<GoodModelInfoDTO> goodsList = entry.getValue(); |
| | | GoodModelInfoDTO goodModelInfoDTO = goodsList.stream().findFirst().orElse(null); |
| | | GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); |
| | | if (goodModelInfoDTO != null) { |
| | | goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); |
| | | goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName()); |
| | | goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); |
| | | goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); |
| | | } |
| | | |
| | | List<GoodsModelVO> goodsModelList = Lists.newArrayList(); |
| | | goodsList.forEach(item -> { |
| | | GoodsModelVO goodsModelVO = new GoodsModelVO(); |
| | |
| | | goodsModelVO.setScrappedName(item.getScrappedName()); |
| | | goodsModelList.add(goodsModelVO); |
| | | }); |
| | | formScrappedGoodsVO.setModels(goodsModelList); |
| | | scrappedGoodsVO.add(formScrappedGoodsVO); |
| | | goodsTemplateInfoVO.setModels(goodsModelList); |
| | | scrappedGoodsVO.add(goodsTemplateInfoVO); |
| | | |
| | | } |
| | | scrappedExtend.setScrappedGoods(scrappedGoodsVO); |
| | |
| | | |
| | | @Override |
| | | public List<ScrappedInfoExcelTemplate> export(Long id) { |
| | | String sql = "SELECT\n" + "\tBUSINESS_FORM_CODE,\n" + "\tfs.DEAL_TIME,\n" + "\tOPERATOR_NAME,\n" |
| | | + "\tAGENCY_NAME tenantName,\n" + "\tGOODS_TEMPLATE_NAME templateName,\n" |
| | | + "\tBASE_GOODS_MODELS_NAME baseModelName,\n" + "\tCOUNTS num,\n" + "\tSCRAPPED_NAME deception,\n" |
| | | + "\tBEIZ remark\n" + "FROM\n" + "\tl_wh_form_scrapped_goods fsg\n" |
| | | + "\tLEFT JOIN l_wh_form_scrapped fs ON fs.id = fsg.FORM_SCRAPPED_ID\n" + "WHERE\n" + "\tfs.ID = :id\n" |
| | | String sql = "SELECT BUSINESS_FORM_CODE,fs.DEAL_TIME,OPERATOR_NAME,\n" |
| | | + "\tAGENCY_NAME tenantName,GOODS_TEMPLATE_NAME templateName,\n" |
| | | + "\tBASE_GOODS_MODELS_NAME baseModelName,COUNTS num,SCRAPPED_NAME deception,\n" |
| | | + "\tBEIZ remark,total_amount FROM l_wh_form_scrapped_goods fsg\n" |
| | | + "\tLEFT JOIN l_wh_form_scrapped fs ON fs.id = fsg.FORM_SCRAPPED_ID WHERE fs.ID = :id\n" |
| | | + "\tAND STATES = 1"; |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("id", id); |
| | |
| | | select.forEach(item -> { |
| | | ScrappedInfoExcelTemplate inventoryExcelTemplate = |
| | | MapUtils.convertMapToObj(item, ScrappedInfoExcelTemplate.class); |
| | | inventoryExcelTemplate.setAmount(CurrencyUtil.convertFenToYuan(inventoryExcelTemplate.getTotalAmount())); |
| | | list.add(inventoryExcelTemplate); |
| | | }); |
| | | return list; |