| | |
| | | |
| | | 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.util.IdUtil; |
| | | import com.consum.base.core.utils.IdUtil; |
| | | import com.consum.model.po.*; |
| | | import com.iplatform.model.po.S_user_core; |
| | | import com.walker.db.page.GenericPager; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | " 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 "; |
| | | |
| | | /** |
| | | * @Description 新增 |
| | |
| | | */ |
| | | public int temporaryStorage(LWhFormInventoryDto dto) { |
| | | //1.根据盘点单id查询盘点单 |
| | | |
| | | //2.删除盘点单物品 |
| | | //3.新增盘点单物品 |
| | | return 0; |
| | | LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); |
| | | if (lWhFormInventory == null) { |
| | | log.error("根据盘点单id查询盘点单 失败"); |
| | | return 0; |
| | | } |
| | | //2.修改盘点单 |
| | | lWhFormInventory.setStates(1); |
| | | lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | int flag1 = this.update(lWhFormInventory); |
| | | if (flag1 == 0) { |
| | | log.error("修改盘点单 失败"); |
| | | return 0; |
| | | } |
| | | //3.更新盘点单物品 |
| | | List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); |
| | | int flag2 = inventoryGoodsService.update(inventoryGoodsList); |
| | | if (flag2 != inventoryGoodsList.size()) { |
| | | log.error("更新盘点单物品 失败"); |
| | | return 0; |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 完成盘点 |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/31 |
| | | */ |
| | | public int finishPd(LWhFormInventoryDto dto) { |
| | | //1.根据盘点单id查询盘点单 |
| | | LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); |
| | | if (lWhFormInventory == null) { |
| | | log.error("根据盘点单id查询盘点单 失败"); |
| | | return 0; |
| | | } |
| | | //2.修改盘点单 |
| | | lWhFormInventory.setStates(2); |
| | | lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | int flag1 = this.update(lWhFormInventory); |
| | | if (flag1 == 0) { |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * @Description 异常明细列表查询 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/11/1 |
| | | * @return |
| | | */ |
| | | public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { |
| | | StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); |
| | | HashMap<String, Object> paramts = new HashMap<>(); |
| | | |
| | | //机构 |
| | | sql.append(" and AGENCY_ID like:AGENCY_ID "); |
| | | if (param.getAgencyId() != null) { |
| | | paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT); |
| | | } else { |
| | | paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //仓库编号 |
| | | if (param.getWarehouseId() != null) { |
| | | 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 "); |
| | | 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 "); |
| | | paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); |
| | | } |
| | | //类型(出入库类型) |
| | | Integer inventoryResult = param.getInventoryResult(); |
| | | if (inventoryResult != null) { |
| | | 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); |
| | | } |
| | | } |
| | | //操作人 |
| | | if (!StringUtils.isEmpty(param.getOperatorName())) { |
| | | 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.getStopTimeEnd() != null) { |
| | | sql.append(" and STOP_TIME <:stopTimeEnd "); |
| | | paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000); |
| | | } |
| | | |
| | | sql.append(" ORDER BY CREATE_TIME DESC "); |
| | | |
| | | return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); |
| | | } |
| | | |
| | | } |