| | |
| | | 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 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; |
| | |
| | | @Autowired |
| | | private CodeGeneratorService codeGeneratorService; |
| | | @Autowired |
| | | private FinSysTenantServiceImpl finSysTenantService; |
| | | private FinSysTenantService finSysTenantService; |
| | | @Autowired |
| | | private LWhGoodsService lWhGoodsService; |
| | | @Autowired |
| | |
| | | |
| | | lWhFormTransfer.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(codeGeneratorEnum)); |
| | | |
| | | Long warehouseId = param.getInWarehouseId(); |
| | | // 调拨类型单据 |
| | | if (businessType == TransferBusinessType.STOCK_TRANSFER.getValue()) { |
| | | // 入库仓库为当前用户的默认仓库 |
| | |
| | | // 从当前登录库管人从库中出库,入到所选部门的下 |
| | | |
| | | // 查询库管员信息和相关仓库 |
| | | Long id = sysInfo.getId(); |
| | | Long sysUserId = sysInfo.getSysUserId(); |
| | | BaseWarehouseManager manager = new BaseWarehouseManager(); |
| | | manager.setManagerId(id); |
| | | manager.setManagerId(sysUserId); |
| | | List<BaseWarehouseManager> managerList = baseWarehouseManagerService.select(manager); |
| | | if (CollectionUtils.isEmpty(managerList)) { |
| | | log.error("该用户不是库管员"); |
| | |
| | | if (finSysTenant == null) { |
| | | log.error("调拨机构不存在"); |
| | | } |
| | | lWhFormTransfer.setOutAgencyId(finSysTenant.getId()); |
| | | Long outAgencyId = finSysTenant.getId(); |
| | | lWhFormTransfer.setOutAgencyId(outAgencyId); |
| | | lWhFormTransfer.setOutAgencyName(finSysTenant.getName()); |
| | | lWhFormTransfer.setOperatorId(sysInfo.getId()); |
| | | lWhFormTransfer.setOperatorName(sysInfo.getUserName()); |
| | |
| | | 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, null, (short)1); |
| | | List<Long> warehouseIdList = |
| | | baseWareHouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList()); |
| | | int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseIdList, baseGoodsModelsId, 1, null); |
| | | lWhProcureModel.setWorehouseCount(goodsNum); |
| | | } |
| | | if (businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue()) { |
| | |
| | | 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) { |
| | | sql.append(" and OUT_AGENCY_ID = :OUT_AGENCY_ID "); |
| | |
| | | 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"); |
| | |
| | | && 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(record.getId()); |
| | | List<LWhProcureModelUser> procureModelUserList = |
| | | this.lWhProcureModelUserService.select(lWhProcureModelUser); |
| | | |
| | |
| | | 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()); |