| | |
| | | package com.consum.base.service.impl; |
| | | |
| | | import static com.walker.db.Sorts.DESC; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.apache.commons.compress.utils.Lists; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import com.consum.base.core.CodeGeneratorEnum; |
| | | import com.consum.base.core.CodeGeneratorService; |
| | | import com.consum.base.core.type.CategoryType; |
| | | import com.consum.base.core.type.StatesType; |
| | | import com.consum.base.core.type.TransferBusinessType; |
| | | import com.consum.base.core.type.TransferStatesType; |
| | | import com.consum.base.core.type.WareHouseType; |
| | | 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.pojo.LWhFormTransferGoodsInfoParam; |
| | | import com.consum.base.pojo.LWhProcureModelUserParam; |
| | | import com.consum.base.pojo.LWhTransferModelParam; |
| | | import com.consum.base.pojo.dto.GoodModelInfoDTO; |
| | | import com.consum.base.pojo.excel.TransferExcelTemplate; |
| | | import com.consum.base.pojo.query.TransferQry; |
| | | import com.consum.base.pojo.request.LWhFormTransferParam; |
| | | import com.consum.base.pojo.response.DepartGoodsUseInfo; |
| | | import com.consum.base.pojo.response.FormTransferGoodsVO; |
| | | import com.consum.base.pojo.response.GoodsModelVO; |
| | | import com.consum.base.pojo.response.GoodsTemplateInfoVO; |
| | | import com.consum.base.pojo.response.LWHFromTransferExtendVO; |
| | | import com.consum.base.service.BaseWarehouseManagerService; |
| | | import com.consum.base.service.BaseWarehouseService; |
| | | import com.consum.base.service.FinSysTenantServiceImpl; |
| | | import com.consum.base.service.FinSysTenantService; |
| | | import com.consum.base.service.LWhFormTransferService; |
| | | import com.consum.base.service.LWhGoodsService; |
| | | import com.consum.base.service.LWhProcureModelService; |
| | |
| | | import com.consum.model.po.LWhProcureModelUser; |
| | | import com.consum.model.po.LWhProcureModelUserRecord; |
| | | import com.walker.db.page.GenericPager; |
| | | import com.walker.infrastructure.utils.DateUtils; |
| | | import com.walker.infrastructure.utils.StringUtils; |
| | | import com.walker.jdbc.service.BaseServiceImpl; |
| | | |
| | |
| | | @Autowired |
| | | private CodeGeneratorService codeGeneratorService; |
| | | @Autowired |
| | | private FinSysTenantServiceImpl finSysTenantService; |
| | | private FinSysTenantService finSysTenantService; |
| | | @Autowired |
| | | private LWhGoodsService lWhGoodsService; |
| | | @Autowired |
| | |
| | | @Autowired |
| | | private BaseWarehouseManagerService baseWarehouseManagerService; |
| | | |
| | | private static String QUERY_FORM_TRANSFER_LIST = |
| | | "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " |
| | | + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " |
| | | + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; |
| | | private static final String QUERY_FORM_TRANSFER_LIST = "SELECT DISTINCT ft.* FROM l_wh_form_transfer ft " |
| | | + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " |
| | | + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " |
| | | + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; |
| | | |
| | | /** |
| | | * @Description 新增 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/30 |
| | | */ |
| | | public long add(LWhFormTransferParam param, FinSysTenantUser sysInfo) throws Exception { |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public long add(LWhFormTransferParam param, FinSysTenantUser sysInfo,boolean isHaveDoc) throws Exception { |
| | | // 1.新增调拨单记录 |
| | | LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(); |
| | | // 调拨单id |
| | |
| | | lWhFormTransfer.setId(lWhFormTransferId); |
| | | |
| | | Integer businessType = param.getTransferBusinessType(); |
| | | // 单据类型。0仓库调拨;1部门分发;2部门物品回退 |
| | | // TODO 枚举字典 |
| | | // 单据类型。0仓库调拨;1部门分发 |
| | | lWhFormTransfer.setBusinessType(businessType); |
| | | CodeGeneratorEnum codeGeneratorEnum = null; |
| | | if (businessType == 0) { |
| | | if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) { |
| | | codeGeneratorEnum = CodeGeneratorEnum.Transfer; |
| | | } else if (businessType == 1) { |
| | | } else if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) { |
| | | codeGeneratorEnum = CodeGeneratorEnum.Distribute; |
| | | } else if (businessType == 2) { |
| | | codeGeneratorEnum = CodeGeneratorEnum.GOBACK; |
| | | } |
| | | |
| | | lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(codeGeneratorEnum)); |
| | | |
| | | Long warehouseId = param.getInWarehouseId(); |
| | | // 调拨类型单据 |
| | | if (businessType == 0) { |
| | | // 入库仓库为当前用户的默认仓库 |
| | | if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) { |
| | | // 入库仓库为当前用户的默认仓库中的第一个 |
| | | String tenantId = sysInfo.getTenantId(); |
| | | String tenantName = sysInfo.getTenantName(); |
| | | BaseWarehouse warehouse = baseWarehouseService.getDefaultWarehouseByAgencyId(Long.valueOf(tenantId)); |
| | | BaseWarehouse warehouse = baseWarehouseService.getWarehouseByAgencyId(Long.valueOf(tenantId), null); |
| | | if (warehouse == null) { |
| | | log.error("仓库不存在"); |
| | | throw new Exception("仓库不存在"); |
| | | //throw new Exception("仓库不存在"); |
| | | return -2L; |
| | | } |
| | | lWhFormTransfer.setInWarehouseId(warehouse.getId()); |
| | | lWhFormTransfer.setInWarehouseName(warehouse.getWarehouseName()); |
| | |
| | | lWhFormTransfer.setInAgencyName(tenantName); |
| | | } |
| | | // 当业务类型为部门分发时 添加部门分发记录和使用人 |
| | | if (businessType == 1) { |
| | | if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) { |
| | | // 部门分发类型 出库仓库类型0机构1部门 |
| | | // 从当前登录库管人从库中出库,入到所选部门的下 |
| | | |
| | | // 查询库管员信息和相关仓库 |
| | | Long id = sysInfo.getId(); |
| | | Long sysUserId = sysInfo.getSysUserId(); |
| | | BaseWarehouseManager manager = new BaseWarehouseManager(); |
| | | manager.setManagerId(id); |
| | | List<BaseWarehouseManager> managerList = baseWarehouseManagerService.selectAll(manager); |
| | | manager.setManagerId(sysUserId); |
| | | List<BaseWarehouseManager> managerList = baseWarehouseManagerService.select(manager); |
| | | if (CollectionUtils.isEmpty(managerList)) { |
| | | log.error("该用户不是库管员"); |
| | | throw new Exception("该用户不是库管员"); |
| | | //throw new Exception("该用户不是库管员"); |
| | | return -1L; |
| | | } |
| | | Optional<BaseWarehouseManager> first = managerList.stream().findFirst(); |
| | | if (first.isPresent()) { |
| | | BaseWarehouseManager baseWarehouseManager = first.get(); |
| | | Long baseWarehouseId = baseWarehouseManager.getBaseWarehouseId(); |
| | | BaseWarehouse baseWarehouse = new BaseWarehouse(); |
| | | baseWarehouse.setId(baseWarehouseId); |
| | | BaseWarehouse warehouse = baseWarehouseService.get(baseWarehouse); |
| | | BaseWarehouseManager baseWarehouseManager = managerList.stream().findFirst().orElse(null); |
| | | Long baseWarehouseId = baseWarehouseManager.getBaseWarehouseId(); |
| | | BaseWarehouse baseWarehouse = new BaseWarehouse(); |
| | | baseWarehouse.setId(baseWarehouseId); |
| | | BaseWarehouse warehouse = baseWarehouseService.get(baseWarehouse); |
| | | |
| | | lWhFormTransfer.setInWarehouseType(1); |
| | | lWhFormTransfer.setInWarehouseId(param.getDepartmentId()); |
| | | lWhFormTransfer.setInWarehouseName(param.getDepartmentName()); |
| | | lWhFormTransfer.setInOperatorName(param.getOperatorName()); |
| | | lWhFormTransfer.setInWarehouseType(WareHouseType.DEPARTMENT.getValue()); |
| | | lWhFormTransfer.setInWarehouseId(param.getDepartmentId()); |
| | | lWhFormTransfer.setInWarehouseName(param.getDepartmentName()); |
| | | lWhFormTransfer.setInOperatorName(param.getOperatorName()); |
| | | |
| | | if(!isHaveDoc){ |
| | | lWhFormTransfer.setInTime(param.getCreateTime()); |
| | | |
| | | lWhFormTransfer.setOutWarehouseType(0); |
| | | lWhFormTransfer.setOutWarehouseId(warehouse.getId()); |
| | | lWhFormTransfer.setOutWarehouseName(warehouse.getWarehouseName()); |
| | | |
| | | lWhFormTransfer.setOutOperatorId(sysInfo.getId()); |
| | | lWhFormTransfer.setOutOperatorName(sysInfo.getUserName()); |
| | | lWhFormTransfer.setOutputTime(param.getCreateTime()); |
| | | lWhFormTransfer.setTel(param.getTel()); |
| | | } |
| | | |
| | | |
| | | lWhFormTransfer.setOutWarehouseType(WareHouseType.TENANT.getValue()); |
| | | lWhFormTransfer.setOutWarehouseId(warehouse.getId()); |
| | | lWhFormTransfer.setOutWarehouseName(warehouse.getWarehouseName()); |
| | | |
| | | lWhFormTransfer.setOutOperatorId(sysInfo.getId()); |
| | | lWhFormTransfer.setOutOperatorName(sysInfo.getUserName()); |
| | | |
| | | if(!isHaveDoc) { |
| | | lWhFormTransfer.setOutputTime(param.getCreateTime()); |
| | | } |
| | | lWhFormTransfer.setTel(param.getTel()); |
| | | |
| | | } |
| | | |
| | | // 根据机构id查询调拨机构 |
| | | FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(param.getOutAgencyId())); |
| | | if (finSysTenant == null) { |
| | | log.error("调拨机构不存在"); |
| | | throw new Exception("调拨机构不存在"); |
| | | } |
| | | lWhFormTransfer.setOutAgencyId(finSysTenant.getId()); |
| | | Long outAgencyId = finSysTenant.getId(); |
| | | lWhFormTransfer.setOutAgencyId(outAgencyId); |
| | | lWhFormTransfer.setOutAgencyName(finSysTenant.getName()); |
| | | lWhFormTransfer.setOperatorId(sysInfo.getId()); |
| | | lWhFormTransfer.setOperatorName(sysInfo.getUserName()); |
| | | lWhFormTransfer.setCreateTime(param.getCreateTime()); |
| | | // 0=待出库;1=待接收;2=已入库库:4=已撤销 |
| | | lWhFormTransfer.setStates(0); |
| | | lWhFormTransfer.setStates(TransferStatesType.OUT_PENDING.getValue()); |
| | | lWhFormTransfer.setProcureDoc(param.getProcureDoc()); |
| | | |
| | | int flag1 = this.insert(lWhFormTransfer); |
| | |
| | | // 2.新增物品型号记录 |
| | | List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods(); |
| | | List<LWhProcureModel> modelList = new ArrayList<>(); |
| | | |
| | | // 判断添加一次使用人记录 |
| | | List<LWhFormTransferGoodsInfoParam> recordType = transferGoods.stream() |
| | | .filter( |
| | | item -> businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue() && item.getModels().stream() |
| | | .anyMatch(model -> baseGoodsModelsService.queryGoodsModelInfo(model.getBaseGoodsModelsId()).stream() |
| | | .findFirst().orElse(null).get("type").equals(CategoryType.TYPE_A.getValue()))) |
| | | .collect(Collectors.toList()); |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); |
| | | if (!CollectionUtils.isEmpty(recordType)) { |
| | | lWhProcureModelUserRecord.setId(IdUtil.generateId()); |
| | | lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId); |
| | | lWhProcureModelUserRecord.setOperatorId(sysInfo.getId()); |
| | | lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName()); |
| | | lWhProcureModelUserRecord.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord); |
| | | } |
| | | for (LWhFormTransferGoodsInfoParam transferGoodsInfo : transferGoods) { |
| | | for (LWhTransferModelParam model : transferGoodsInfo.getModels()) { |
| | | LWhProcureModel lWhProcureModel = new LWhProcureModel(); |
| | |
| | | // 调拨业务类型转换到物品类型 |
| | | // 物品类型 1 采购2 调拨 3出库4部门分发 |
| | | Long baseGoodsModelsId = model.getBaseGoodsModelsId(); |
| | | if (businessType == 0) { |
| | | if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) { |
| | | lWhProcureModel.setBusinessType(2); |
| | | // 根据物品型号查询物品库存 |
| | | int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null); |
| | | // 调拨申请时没有仓库id 查询上级机构的所有仓库 |
| | | List<BaseWarehouse> baseWareHouseList = |
| | | baseWarehouseService.getBaseWareHouseList(outAgencyId, StatesType.NORMAL.getValue()); |
| | | List<Long> warehouseIdList = |
| | | baseWareHouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList()); |
| | | int goodsNum = lWhGoodsService.queryGoodsModelNum(WareHouseType.TENANT.getValue(), warehouseIdList, |
| | | baseGoodsModelsId, 1, null); |
| | | lWhProcureModel.setWorehouseCount(goodsNum); |
| | | } |
| | | if (businessType == 1) { |
| | | if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) { |
| | | lWhProcureModel.setBusinessType(4); |
| | | } |
| | | lWhProcureModel.setCounts(model.getCounts()); |
| | |
| | | // 3.当业务类型为部门分发时 添加部门分发记录和使用人 |
| | | // 单据类型 1 采购2 调拨 3出库4部门分发 |
| | | // 部门分发类型 |
| | | if (businessType == 1 && "A".equals(baseModelMap.get("type"))) { |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); |
| | | lWhProcureModelUserRecord.setId(IdUtil.generateId()); |
| | | lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId); |
| | | lWhProcureModelUserRecord.setOperatorId(sysInfo.getId()); |
| | | lWhProcureModelUserRecord.setOperatorName(sysInfo.getUserName()); |
| | | lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord); |
| | | |
| | | if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue() |
| | | && CategoryType.TYPE_A.getValue().equals(baseModelMap.get("type"))) { |
| | | List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); |
| | | for (LWhProcureModelUserParam lWhProcureModelUserParam : model.getProcureModelUserList()) { |
| | | LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); |
| | |
| | | log.error("新增物品使用信息失败"); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | |
| | | } |
| | | |
| | | modelList.add(lWhProcureModel); |
| | |
| | | sql.append("AND bgt.GOODS_NAME LIKE :goodsTemplateName "); |
| | | paramts.put("goodsTemplateName", |
| | | StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | // 物品id |
| | | if (param.getGoodsTemplateId() != null) { |
| | | sql.append("AND bgt.id = :goodsTemplateId "); |
| | | paramts.put("goodsTemplateId", param.getGoodsTemplateId()); |
| | | } |
| | | // 调拨机构 |
| | | if (param.getOutAgencyId() != null) { |
| | |
| | | paramts.put("inTimeEnd", param.getEndTime() * 1000000 + 240000); |
| | | } |
| | | // 分发部门 |
| | | if (param.getInWarehouseId() != null) { |
| | | if (param.getDepartmentId() != null) { |
| | | sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId "); |
| | | paramts.put("inWarehouseId", param.getInWarehouseId()); |
| | | paramts.put("inWarehouseId", param.getDepartmentId()); |
| | | } |
| | | |
| | | sql.append(" ORDER BY ft.CREATE_TIME DESC"); |
| | |
| | | result.setDepartmentName(lWhFormTransfer.getInWarehouseName()); |
| | | } |
| | | |
| | | String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " |
| | | + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " |
| | | + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; |
| | | Map<String, Object> paramMap = new HashMap<>(); |
| | | paramMap.put("id", result.getId()); |
| | | List<Map<String, Object>> procureModelList = this.select(sql, paramMap, new MapperUtil()); |
| | | List<GoodModelInfoDTO> goodsModelInfo = |
| | | lWhProcureModelService.getGoodsModelListByBusinessId(result.getId(), null); |
| | | if (CollectionUtils.isEmpty(goodsModelInfo)) { |
| | | return result; |
| | | } |
| | | |
| | | String queryRecord = |
| | | "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = |
| | | lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); |
| | | List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); |
| | | for (Map<String, Object> map : procureModelList) { |
| | | FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); |
| | | Long baseGoodsTemplateId = procureTemplateInfoVO.getId(); |
| | | // 查询型号数量 |
| | | List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); |
| | | String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " |
| | | + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " |
| | | + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId"; |
| | | Map<String, Object> goodsModelParamMap = new HashMap<>(); |
| | | goodsModelParamMap.put("id", result.getId()); |
| | | goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); |
| | | List<Map<String, Object>> modelList = this.select(sql2, goodsModelParamMap, new MapperUtil()); |
| | | modelList.forEach(item -> { |
| | | GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); |
| | | Integer businessType = result.getBusinessType(); |
| | | String type = procureTemplateInfoVO.getType(); |
| | | Map<Long, List<GoodModelInfoDTO>> collect = |
| | | goodsModelInfo.stream().filter(Objects::nonNull).filter(dto -> dto.getBaseGoodsTemplateId() != null) |
| | | .collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId)); |
| | | List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList(); |
| | | for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) { |
| | | List<GoodModelInfoDTO> value = entry.getValue(); |
| | | GoodModelInfoDTO goodModelInfoDTO = value.stream().findFirst().orElse(null); |
| | | GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO(); |
| | | if (goodModelInfoDTO != null) { |
| | | goodsTemplateInfoVO.setId(goodModelInfoDTO.getId()); |
| | | goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName()); |
| | | goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsName()); |
| | | goodsTemplateInfoVO.setType(goodModelInfoDTO.getType()); |
| | | } |
| | | |
| | | List<GoodsModelVO> goodsModelList = Lists.newArrayList(); |
| | | for (GoodModelInfoDTO goodModelInfo : value) { |
| | | GoodsModelVO goodsModelVO = new GoodsModelVO(); |
| | | goodsModelVO.setId(goodModelInfo.getId()); |
| | | goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName()); |
| | | goodsModelVO.setUnit(goodModelInfo.getUnit()); |
| | | goodsModelVO.setCounts(goodModelInfo.getCounts()); |
| | | goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount())); |
| | | // 部门分发需要查询使用信息 |
| | | if (businessType == 1 && "A".equals(type)) { |
| | | Integer businessType = result.getBusinessType(); |
| | | String type = goodsTemplateInfoVO.getType(); |
| | | if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue() |
| | | && CategoryType.TYPE_A.getValue().equals(type)) { |
| | | Long procureModelId = goodsModelVO.getId(); |
| | | |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord(); |
| | | lWhProcureModelUserRecord.setTransBusinessId(id); |
| | | List<LWhProcureModelUserRecord> select = lWhProcureModelUserRecordService |
| | | .select(lWhProcureModelUserRecord, DESC().setField("DEAL_TIME")); |
| | | LWhProcureModelUserRecord record = select.stream().findFirst().orElse(null); |
| | | LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); |
| | | lWhProcureModelUser.setWhProcureModelId(procureModelId); |
| | | lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); |
| | | lWhProcureModelUser.setProcureModelUserRecordId(record.getId()); |
| | | List<LWhProcureModelUser> procureModelUserList = |
| | | this.lWhProcureModelUserService.select(lWhProcureModelUser); |
| | | |
| | | if (!CollectionUtils.isEmpty(procureModelUserList)) { |
| | | List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); |
| | | procureModelUserList.forEach(useInfo -> { |
| | |
| | | }); |
| | | goodsModelVO.setUseInfo(departGoodsUseInfoList); |
| | | } |
| | | |
| | | } |
| | | goodsModelVOList.add(goodsModelVO); |
| | | procureTemplateInfoVO.setModels(goodsModelVOList); |
| | | }); |
| | | formTransferGoods.add(procureTemplateInfoVO); |
| | | goodsModelList.add(goodsModelVO); |
| | | } |
| | | goodsTemplateInfoVO.setModels(goodsModelList); |
| | | goodsTemplateInfoList.add(goodsTemplateInfoVO); |
| | | } |
| | | result.setFormTransferGoods(formTransferGoods); |
| | | result.setFormTransferGoods(goodsTemplateInfoList); |
| | | |
| | | return result; |
| | | } |
| | |
| | | */ |
| | | public int updateStatus(Long id) { |
| | | LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id); |
| | | lWhFormTransfer.setStates(4); |
| | | lWhFormTransfer.setStates(TransferStatesType.CANCEL.getValue()); |
| | | return this.update(lWhFormTransfer); |
| | | } |
| | | |
| | |
| | | paramts.put("goodsName", |
| | | StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | // 物品id |
| | | if (transferQry.getGoodsTemplateId() != null) { |
| | | sql.append("AND bgt.id =:goodsTemplateId "); |
| | | paramts.put("goodsTemplateId", transferQry.getGoodsTemplateId()); |
| | | } |
| | | // 规格型号 |
| | | if (transferQry.getBaseGoodsModelsId() != null) { |
| | | sql.append("AND bgm.id =:goodsModelId "); |
| | |
| | | } |
| | | // 调拨机构 |
| | | if (transferQry.getOutAgencyId() != null) { |
| | | sql.append("AND OUT_AGENCY_ID = :OUT_AGENCY_ID "); |
| | | paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId()); |
| | | sql.append("AND OUT_AGENCY_ID like :OUT_AGENCY_ID "); |
| | | paramts.put("OUT_AGENCY_ID", transferQry.getOutAgencyId() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | // 分发部门 |
| | | if (transferQry.getInWarehouseId() != null) { |
| | | if (transferQry.getDepartmentId() != null) { |
| | | sql.append("and ft.IN_WAREHOUSE_ID = :inWarehouseId "); |
| | | paramts.put("inWarehouseId", transferQry.getInWarehouseId()); |
| | | paramts.put("inWarehouseId", transferQry.getDepartmentId()); |
| | | } |
| | | // 创建人 |
| | | if (StringUtils.isNotEmpty(transferQry.getOperatorName())) { |
| | |
| | | + " ft.OUT_OPERATOR_NAME,\n" + " ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n" |
| | | + " LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" |
| | | + " LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n" |
| | | + " LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 "); |
| | | + " LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where ft.BUSINESS_TYPE =0 "); |
| | | if (StringUtils.isNotEmpty(param.getBusinessFormCode())) { |
| | | sql.append("AND ft.BUSINESS_FORM_CODE = :businessFormCode "); |
| | | params.put("businessFormCode", param.getBusinessFormCode()); |
| | |
| | | sql.append("AND bgt.GOODS_NAME like :goodsName "); |
| | | params.put("goodsName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | if (param.getGoodsTemplateId() != null) { |
| | | sql.append("AND bgt.id = :goodsTemplateId "); |
| | | params.put("goodsTemplateId", param.getGoodsTemplateId()); |
| | | } |
| | | if (param.getBaseGoodsModelsId() != null) { |
| | | sql.append("AND bgm.id = :goodsModelId "); |
| | | params.put("goodsModelId", param.getBaseGoodsModelsId()); |
| | | } |
| | | if (param.getOutAgencyId() != null) { |
| | | sql.append("AND ft.OUT_AGENCY_ID like :outAgencyId "); |
| | | params.put("outAgencyId", param.getOutAgencyId()); |
| | | params.put("outAgencyId", param.getOutAgencyId() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | if (param.getOutAgencyId() != null) { |
| | | if (param.getInAgencyId() != null) { |
| | | sql.append("AND ft.IN_AGENCY_ID like :inAgencyId "); |
| | | params.put("inAgencyId", param.getInAgencyId()); |
| | | params.put("inAgencyId", param.getInAgencyId() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | if (StringUtils.isNotEmpty(param.getOperatorName())) { |
| | | sql.append("AND ft.OPERATOR_NAME = :operatorName "); |