| | |
| | | |
| | | import com.consum.base.core.CodeGeneratorEnum; |
| | | import com.consum.base.core.CodeGeneratorService; |
| | | import com.consum.base.core.utils.MapRowMapper; |
| | | import com.consum.base.pojo.LWhFormInventoryDto; |
| | | import com.consum.base.pojo.LWhFormInventoryParam; |
| | | import com.consum.base.core.utils.IdUtil; |
| | | import com.consum.model.po.*; |
| | | 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.excel.InventoryExcelTemplate; |
| | | import com.consum.base.pojo.query.LWhFormInventoryQry; |
| | | import com.consum.base.pojo.request.FormInventoryParam; |
| | | import com.consum.base.pojo.request.LWhFormInventoryParam; |
| | | import com.consum.base.pojo.response.FormInventoryDetailVO; |
| | | import com.consum.base.pojo.response.FormInventoryGoodsVO; |
| | | import com.consum.base.pojo.response.FormInventoryVO; |
| | | import com.consum.model.po.BaseWarehouse; |
| | | import com.consum.model.po.FinSysTenant; |
| | | import com.consum.model.po.FinSysTenantUser; |
| | | import com.consum.model.po.LWhFormInventory; |
| | | 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; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.compress.utils.Lists; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | /** |
| | | * @Description 盘点 |
| | |
| | | @Autowired |
| | | private BaseWarehouseServiceImpl baseWarehouseService; |
| | | @Autowired |
| | | private FinSysTenantUserServiceImpl finSysTenantUserService; |
| | | @Autowired |
| | | private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; |
| | | @Autowired |
| | | private LWhGoodsService lWhGoodsService; |
| | | @Autowired |
| | | private FinSysTenantServiceImpl finSysTenantService; |
| | | @Autowired |
| | | @Lazy |
| | | private LWhFormInventoryCoreService lWhFormInventoryCoreService; |
| | | |
| | | |
| | | private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 "; |
| | | |
| | | private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" + |
| | | " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + |
| | | "FROM BASE_GOODS_MODELS model\n" + |
| | | " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + |
| | | " FROM L_WH_GOODS\n" + |
| | | " WHERE WAREHOUSE_TYPE = 0\n" + |
| | | " AND WAREHOUSE_ID = 1\n" + |
| | | " AND STATES = ?\n" + |
| | | " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" + |
| | | "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; |
| | | private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" |
| | | + " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n" |
| | | + " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + " FROM L_WH_GOODS\n" |
| | | + " WHERE WAREHOUSE_TYPE = 0\n" + " AND WAREHOUSE_ID = 1\n" + " AND STATES = ?\n" |
| | | + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" |
| | | + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; |
| | | |
| | | private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + |
| | | " lwfig.BASE_GOODS_MODELS_NAME,\n" + |
| | | " lwfig.INVENTORY_RESULT,\n" + |
| | | " lwfig.INIT_COUNTS,\n" + |
| | | " lwfig.INVENTORY_COUNTS,\n" + |
| | | " lwfig.ERROR_COUNTS,\n" + |
| | | " lwfi.AGENCY_NAME,\n" + |
| | | " lwfi.OPERATOR_NAME,\n" + |
| | | " lwfi.STOP_TIME\n" + |
| | | "from l_wh_form_inventory lwfi\n" + |
| | | " inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID "; |
| | | private static final String QUERY_PD_DETAIL_LIST = |
| | | "SELECT fig.id,fi.WAREHOUSE_NAME,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME,fig.INVENTORY_RESULT,fig.INIT_COUNTS,fig.INVENTORY_COUNTS," |
| | | + "fig.ERROR_COUNTS,fi.AGENCY_NAME,fi.OPERATOR_NAME,fi.STOP_TIME operatorTime," |
| | | + "CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE END warehouseFormCode " |
| | | + "FROM l_wh_form_inventory fi INNER JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID where 1=1 "; |
| | | |
| | | /** |
| | | * @param param |
| | | * @param currentUser 当前登录用户 |
| | | * @param operatorUser 盘点人 |
| | | * @param monitorUser 监盘人 |
| | | * @return |
| | | * @Description 新增 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/31 |
| | | * @param param |
| | | * @param currentUser 当前登录用户 |
| | | * @param operatorUser 盘点人 |
| | | * @param operatorUser2 监盘人 |
| | | * @return |
| | | */ |
| | | public int add(LWhFormInventoryParam param, FinSysTenantUser currentUser, S_user_core operatorUser, S_user_core operatorUser2) { |
| | | public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, FinSysTenantUser monitorUser) { |
| | | //新增盘点单 |
| | | LWhFormInventory lWhFormInventory = new LWhFormInventory(); |
| | | BeanUtils.copyProperties(param,lWhFormInventory); |
| | | BeanUtils.copyProperties(param, lWhFormInventory); |
| | | lWhFormInventory.setId(IdUtil.generateId()); |
| | | //盘点单编码 |
| | | String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory); |
| | |
| | | if (baseWarehouse != null) { |
| | | lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName()); |
| | | } |
| | | lWhFormInventory.setOperatorName(operatorUser.getUser_name()); |
| | | lWhFormInventory.setOperatorName2(operatorUser2.getUser_name()); |
| | | if (operatorUser != null) { |
| | | lWhFormInventory.setOperatorId(operatorUser.getId()); |
| | | lWhFormInventory.setOperatorName(operatorUser.getUserName()); |
| | | } |
| | | if (monitorUser != null) { |
| | | lWhFormInventory.setOperatorId2(monitorUser.getId()); |
| | | lWhFormInventory.setOperatorName2(monitorUser.getUserName()); |
| | | } |
| | | |
| | | lWhFormInventory.setStates(0); |
| | | lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId())); |
| | | lWhFormInventory.setAgencyName(currentUser.getTenantName()); |
| | | FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(currentUser.getTenantId())); |
| | | lWhFormInventory.setAgencyName(finSysTenant.getName()); |
| | | lWhFormInventory.setCreatorId(currentUser.getSysUserId()); |
| | | lWhFormInventory.setCreatorName(currentUser.getUserName()); |
| | | lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | |
| | | lWhFormInventory.setBeiz1(param.getRemark()); |
| | | return this.insert(lWhFormInventory); |
| | | } |
| | | |
| | |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/31 |
| | | */ |
| | | public GenericPager<LWhFormInventory> queryList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { |
| | | public GenericPager<LWhFormInventory> queryList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { |
| | | StringBuilder sql = new StringBuilder(QUERY_LIST); |
| | | HashMap<String, Object> paramts = new HashMap<>(); |
| | | |
| | | //盘点单号 |
| | | if (!StringUtils.isEmpty(param.getBusinessFormCode())) { |
| | | sql.append(" and BUSINESS_FORM_CODE like:BUSINESS_FORM_CODE "); |
| | | paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); |
| | | sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE "); |
| | | paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode()); |
| | | } |
| | | //盘点单名称 |
| | | if (!StringUtils.isEmpty(param.getBusinessFormName())) { |
| | | sql.append(" and BUSINESS_FORM_NAME =:BUSINESS_FORM_NAME "); |
| | | sql.append("and BUSINESS_FORM_NAME like :BUSINESS_FORM_NAME "); |
| | | paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //仓库编号 |
| | | if (param.getWarehouseId() != null) { |
| | | sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); |
| | | sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID "); |
| | | paramts.put("WAREHOUSE_ID", param.getWarehouseId()); |
| | | } |
| | | //盘点时间 |
| | | if (param.getInventoryDateStart() != null) { |
| | | sql.append(" and INVENTORY_DATE >=:inventoryDateStart "); |
| | | paramts.put("inventoryDateStart", param.getInventoryDateStart() * 1000000); |
| | | if (param.getStartTime() != null) { |
| | | sql.append("and INVENTORY_DATE >=:inventoryDateStart "); |
| | | paramts.put("inventoryDateStart", param.getStartTime() * 1000000); |
| | | } |
| | | if (param.getInventoryDateEnd() != null) { |
| | | sql.append(" and INVENTORY_DATE <:inventoryDateEnd "); |
| | | paramts.put("inventoryDateEnd", param.getInventoryDateEnd() * 1000000 + 240000); |
| | | if (param.getEndTime() != null) { |
| | | sql.append("and INVENTORY_DATE <:inventoryDateEnd "); |
| | | paramts.put("inventoryDateEnd", param.getEndTime() * 1000000 + 240000); |
| | | } |
| | | //机构 |
| | | sql.append(" and AGENCY_ID =:AGENCY_ID "); |
| | | sql.append("and AGENCY_ID =:AGENCY_ID "); |
| | | paramts.put("AGENCY_ID", sysInfo.getTenantId()); |
| | | |
| | | sql.append(" ORDER BY CREATE_TIME DESC "); |
| | | sql.append("ORDER BY CREATE_TIME DESC "); |
| | | return selectSplit(sql.toString(), paramts, new LWhFormInventory()); |
| | | } |
| | | |
| | | /** |
| | | * @Description 盘点 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/31 |
| | | * @param id 盘点单id |
| | | */ |
| | | public List queryPdList(Long id) { |
| | | |
| | | public List<FormInventoryGoodsVO> saveInventory(FormInventoryVO dto, Long id) { |
| | | //1.根据盘点单id查询盘点单 |
| | | LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id)); |
| | | if (lWhFormInventory == null) { |
| | | log.error("盘点失败"); |
| | | } |
| | | //2.查询盘点单数据 |
| | | List<Map<String, Object>> list = this.select(QUERY_PD_List, new Object[]{lWhFormInventory.getWarehouseId()}); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | log.error("盘点失败"); |
| | | return null; |
| | | } |
| | | //3.新增盘点单物品记录 |
| | | int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId()); |
| | | if (flag != list.size()) { |
| | | log.error("新增盘点单记录"); |
| | | return null; |
| | | } |
| | | //4.根据盘点单id查询盘点单物品 |
| | | return inventoryGoodsService.getByInventoryId(id); |
| | | } |
| | | |
| | | /** |
| | | * 暂存 |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/31 |
| | | */ |
| | | public int temporaryStorage(LWhFormInventoryDto dto) { |
| | | //1.根据盘点单id查询盘点单 |
| | | LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); |
| | | if (lWhFormInventory == null) { |
| | | log.error("根据盘点单id查询盘点单 失败"); |
| | | return 0; |
| | | log.error("根据盘点单id查询盘点单失败"); |
| | | } |
| | | //2.修改盘点单 |
| | | lWhFormInventory.setStates(1); |
| | | lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | int flag1 = this.update(lWhFormInventory); |
| | | if (flag1 == 0) { |
| | | log.error("修改盘点单 失败"); |
| | | return 0; |
| | | log.error("修改盘点单失败"); |
| | | } |
| | | //3.更新盘点单物品 |
| | | List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); |
| | | int flag2 = inventoryGoodsService.update(inventoryGoodsList); |
| | | if (flag2 != inventoryGoodsList.size()) { |
| | | log.error("更新盘点单物品 失败"); |
| | | return 0; |
| | | //3.添加盘点单物品 |
| | | List<FormInventoryGoodsVO> formInventoryGoodsList = dto.getFormInventoryGoodsList(); |
| | | if (CollectionUtils.isEmpty(formInventoryGoodsList)) { |
| | | log.error("盘点单物品为空"); |
| | | } |
| | | return 1; |
| | | List<FormInventoryGoodsVO> result = inventoryGoodsService.add(formInventoryGoodsList, id); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 完成盘点 |
| | | * 保存盘点信息 |
| | | * |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/31 |
| | | */ |
| | | public int finishPd(LWhFormInventoryDto dto) { |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int updateInventoryInfo(LWhFormInventoryParam dto, Integer state, S_user_core currentUser, FinSysTenantUser sysInfo) { |
| | | //1.根据盘点单id查询盘点单 |
| | | LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); |
| | | if (lWhFormInventory == null) { |
| | | log.error("根据盘点单id查询盘点单 失败"); |
| | | log.error("根据盘点单id查询盘点单失败"); |
| | | return 0; |
| | | } |
| | | //2.修改盘点单 |
| | | lWhFormInventory.setStates(2); |
| | | lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | //添加盘点单物品 |
| | | List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList(); |
| | | if (CollectionUtils.isEmpty(inventoryGoodsList)) { |
| | | log.error("盘点单物品为空"); |
| | | return 0; |
| | | } |
| | | this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList); |
| | | //修改盘点单 |
| | | if (state == 2) { |
| | | //完成盘点时设置完成盘点时间 |
| | | lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | |
| | | //完成盘点时设置完成盘点时间 |
| | | String inOutFormByInventoryId = lWhFormInventoryCoreService.createInOutFormByInventoryId(dto.getId(), currentUser, sysInfo); |
| | | if (!StringUtils.isEmpty(inOutFormByInventoryId)) { |
| | | log.error(inOutFormByInventoryId); |
| | | return 0; |
| | | } |
| | | } |
| | | lWhFormInventory.setStates(state); |
| | | lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | int flag1 = this.update(lWhFormInventory); |
| | | if (flag1 == 0) { |
| | | log.error("修改盘点单 失败"); |
| | | log.error("修改盘点单失败"); |
| | | return 0; |
| | | } |
| | | //3.更新盘点单物品 |
| | | List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); |
| | | if (CollectionUtils.isEmpty(inventoryGoodsList)) { |
| | | log.error("盘点单物品 为空"); |
| | | return 0; |
| | | } |
| | | for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { |
| | | int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts(); |
| | | if (errorCounts >0 ) { |
| | | inventoryGoods.setInventoryResult(3); |
| | | } else if (errorCounts <0){ |
| | | inventoryGoods.setInventoryResult(2); |
| | | } else { |
| | | inventoryGoods.setInventoryResult(1); |
| | | } |
| | | inventoryGoods.setErrorCounts(Math.abs(errorCounts)); |
| | | } |
| | | int flag2 = inventoryGoodsService.update(inventoryGoodsList); |
| | | if (flag2 != inventoryGoodsList.size()) { |
| | | log.error("更新盘点单物品 失败"); |
| | | return 0; |
| | | } |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @return |
| | | * @Description 异常明细列表查询 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/11/1 |
| | | * @return |
| | | */ |
| | | public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { |
| | | public PageUtil<FormInventoryDetailVO> queryPdDetailList(LWhFormInventoryQry param, FinSysTenantUser sysInfo) { |
| | | StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); |
| | | HashMap<String, Object> paramts = new HashMap<>(); |
| | | |
| | |
| | | } |
| | | //仓库编号 |
| | | if (param.getWarehouseId() != null) { |
| | | sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); |
| | | sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID "); |
| | | paramts.put("WAREHOUSE_ID", param.getWarehouseId()); |
| | | } |
| | | //物品名称 |
| | | if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { |
| | | sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME "); |
| | | sql.append("and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME "); |
| | | paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //规格型号 |
| | | if (param.getBaseGoodsModelsId() != null) { |
| | | sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); |
| | | sql.append("and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); |
| | | paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); |
| | | } |
| | | //类型(出入库类型) |
| | | Integer inventoryResult = param.getInventoryResult(); |
| | | if (inventoryResult != null) { |
| | | sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT "); |
| | | sql.append("and INVENTORY_RESULT =:INVENTORY_RESULT "); |
| | | paramts.put("INVENTORY_RESULT", inventoryResult); |
| | | } |
| | | //出入库单号 |
| | | if (param.getWarehouseFormCode() != null) { |
| | | if (inventoryResult == 2) { //盘盈入库 |
| | | sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE "); |
| | | paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); |
| | | } else { //盘亏出库 |
| | | sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE "); |
| | | paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | sql.append( |
| | | " and CASE WHEN fig.INVENTORY_RESULT = 2 THEN fi.IN_BUSINESS_FORM_CODE =:warehouseFormCode WHEN fig.INVENTORY_RESULT = 3 THEN fi.OUT_BUSINESS_FORM_CODE =:warehouseFormCode END "); |
| | | paramts.put("warehouseFormCode", param.getWarehouseFormCode()); |
| | | } |
| | | //操作人 |
| | | if (!StringUtils.isEmpty(param.getOperatorName())) { |
| | | sql.append(" and OPERATOR_NAME =:OPERATOR_NAME "); |
| | | sql.append("and OPERATOR_NAME =:OPERATOR_NAME "); |
| | | paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //结束时间 |
| | | if (param.getStopTimeStart() != null) { |
| | | sql.append(" and STOP_TIME >=:stopTimeStart "); |
| | | paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000); |
| | | if (param.getStartTime() != null) { |
| | | sql.append("and STOP_TIME >=:stopTimeStart "); |
| | | paramts.put("stopTimeStart", param.getStartTime() * 1000000); |
| | | } |
| | | if (param.getStopTimeEnd() != null) { |
| | | sql.append(" and STOP_TIME <:stopTimeEnd "); |
| | | paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000); |
| | | if (param.getEndTime() != null) { |
| | | sql.append("and STOP_TIME <:stopTimeEnd "); |
| | | paramts.put("stopTimeEnd", param.getEndTime() * 1000000 + 240000); |
| | | } |
| | | |
| | | sql.append(" ORDER BY CREATE_TIME DESC "); |
| | | |
| | | return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); |
| | | sql.append("AND fig.INVENTORY_RESULT in(2,3) "); |
| | | sql.append("ORDER BY CREATE_TIME DESC "); |
| | | GenericPager<Map<String, Object>> mapGenericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); |
| | | PageUtil<FormInventoryDetailVO> pageUtil = new PageUtil<>(mapGenericPager); |
| | | List<FormInventoryDetailVO> result = Lists.newArrayList(); |
| | | mapGenericPager.getDatas().forEach(item -> { |
| | | FormInventoryDetailVO formInventoryDetailVO = MapUtils.convertMapToObj(item, FormInventoryDetailVO.class); |
| | | formInventoryDetailVO.setInventoryResultType( |
| | | formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈" : "盘亏")); |
| | | formInventoryDetailVO.setInventoryType( |
| | | formInventoryDetailVO.getInventoryResult() == null ? null : (formInventoryDetailVO.getInventoryResult() == 2 ? "盘盈入库" : "盘亏出库")); |
| | | formInventoryDetailVO.setWarehouseFormCode(formInventoryDetailVO.getWarehouseFormCode()); |
| | | result.add(formInventoryDetailVO); |
| | | }); |
| | | pageUtil.setDatas(result); |
| | | return pageUtil; |
| | | } |
| | | |
| | | public List<FormInventoryGoodsVO> selectDetailById(Long id) { |
| | | |
| | | String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME," |
| | | + "fig.INIT_COUNTS inventoryCount,fig.INVENTORY_COUNTS realNum,fig.INVENTORY_RESULT status,fig.unit,bgt.CLASSIFICATION type from " |
| | | + "l_wh_form_inventory_goods fig left join base_goods_template bgt on bgt.id =fig.BASE_GOODS_TEMPLATE_ID where fig.WH_FORM_INVENTORY_ID = :id"; |
| | | HashMap<String, Object> param = new HashMap<>(); |
| | | param.put("id", id); |
| | | List<Map<String, Object>> select = select(sql, param, new MapperUtil()); |
| | | List<FormInventoryGoodsVO> result = Lists.newArrayList(); |
| | | select.forEach(item -> { |
| | | FormInventoryGoodsVO formInventoryGoodsVO = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class); |
| | | result.add(formInventoryGoodsVO); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | public FormInventoryVO queryInventBaseGoodTemplate(Long id) { |
| | | FormInventoryVO formInventoryVO = new FormInventoryVO(); |
| | | |
| | | LWhFormInventory lWhFormInventory = new LWhFormInventory(); |
| | | lWhFormInventory.setId(id); |
| | | LWhFormInventory inventory = this.get(lWhFormInventory); |
| | | if (inventory == null) { |
| | | return null; |
| | | } |
| | | Long warehouseId = inventory.getWarehouseId(); |
| | | Integer warehouseType = inventory.getWarehouseType(); |
| | | |
| | | formInventoryVO.setBusinessFormCode(inventory.getBusinessFormCode()); |
| | | formInventoryVO.setBusinessFormName(inventory.getBusinessFormName()); |
| | | formInventoryVO.setWarehouseId(warehouseId); |
| | | formInventoryVO.setWarehouseName(inventory.getWarehouseName()); |
| | | |
| | | String sql = |
| | | "select bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT " |
| | | + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id " |
| | | + "where bgt.AGENCY_ID = :agencyId"; |
| | | HashMap<String, Object> param = new HashMap<>(); |
| | | param.put("agencyId", inventory.getAgencyId()); |
| | | List<Map<String, Object>> result = this.select(sql, param, new MapperUtil()); |
| | | List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList(); |
| | | result.forEach(item -> { |
| | | FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class); |
| | | int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null); |
| | | baseGoodsModels.setInventoryCount(inventoryCount); |
| | | goodsVOList.add(baseGoodsModels); |
| | | }); |
| | | formInventoryVO.setFormInventoryGoodsList(goodsVOList); |
| | | return formInventoryVO; |
| | | } |
| | | |
| | | public List<InventoryExcelTemplate> getExportList(Long id) { |
| | | String sql = "SELECT\n" |
| | | + "\tfi.INVENTORY_DATE createTime,\n" |
| | | + "\tfi.STOP_TIME endTime,\n" |
| | | + "\tfi.OPERATOR_NAME,\n" |
| | | + "\tfi.OPERATOR_NAME2 monitorName,\n" |
| | | + "\tfi.AGENCY_NAME tenantName,\n" |
| | | + "\tfig.GOODS_TEMPLATE_NAME templateName,\n" |
| | | + "\tfig.BASE_GOODS_MODELS_NAME baseModelName,\n" |
| | | + "\tfig.INVENTORY_COUNTS num,\n" |
| | | + "\tfig.INIT_COUNTS stockNum,\n" |
| | | + "\tfig.INVENTORY_RESULT,\n" |
| | | + "\tBEIZ1 remark\n" |
| | | + "FROM\n" |
| | | + "\tl_wh_form_inventory fi\n" |
| | | + "\tLEFT JOIN l_wh_form_inventory_goods fig ON fi.ID = fig.WH_FORM_INVENTORY_ID\n" |
| | | + "WHERE\n" |
| | | + "\tfi.ID = :id"; |
| | | HashMap<String, Object> param = new HashMap<>(); |
| | | param.put("id", id); |
| | | List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); |
| | | if (CollectionUtils.isEmpty(select)) { |
| | | return null; |
| | | } |
| | | List<InventoryExcelTemplate> list = Lists.newArrayList(); |
| | | select.forEach(item -> { |
| | | InventoryExcelTemplate inventoryExcelTemplate = MapUtils.convertMapToObj(item, InventoryExcelTemplate.class); |
| | | inventoryExcelTemplate.setInventoryDeception(inventoryExcelTemplate.getInventoryResult() == 1 ? "是" : "否"); |
| | | inventoryExcelTemplate.setDeception( |
| | | inventoryExcelTemplate.getInventoryResult() == 1 ? "正常" : (inventoryExcelTemplate.getInventoryResult() == 2 ? "盘盈" : "盘亏")); |
| | | list.add(inventoryExcelTemplate); |
| | | }); |
| | | return list; |
| | | |
| | | } |
| | | } |