Browse Source

中心仓出入库导出功能

liyuan 2 months ago
parent
commit
39d7681069

+ 2 - 0
blade-service-api/tire-center-warehouse-api/src/main/java/com/ecp/tire/center/warehouse/api/plan/vo/CenterOrderPlanVo.java

@@ -148,4 +148,6 @@ public class CenterOrderPlanVo extends CenterOrderPlan {
 	 */
 	private List<CenterShipCost> centerShipPaymentCostList;
 
+	private Integer isAdmin;
+
 }

+ 59 - 0
blade-service-api/tire-center-warehouse-api/src/main/java/com/ecp/tire/center/warehouse/api/stock/vo/CenterExportPlanInVo.java

@@ -0,0 +1,59 @@
+package com.ecp.tire.center.warehouse.api.stock.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author Rain
+ */
+@Data
+public class CenterExportPlanInVo {
+
+
+	@ExcelProperty(value = "单据单号")
+	private String planNo;
+
+	@ExcelProperty(value = "货主")
+	private String customerName;
+
+	@ExcelProperty(value = "仓库")
+	private String storageName;
+
+	@ExcelProperty(value = "总数量")
+	private BigDecimal totalNum;
+
+	@ExcelProperty(value = "单据状态")
+	private String statusName;
+
+	@ExcelProperty(value = "品牌")
+	private String brandName;
+
+	@ExcelProperty(value = "商品编码")
+	private String code;
+
+	@ExcelProperty(value = "商品名称")
+	private String goodsName;
+
+	@ExcelProperty(value = "批次号")
+	private String dot;
+
+	@ExcelProperty(value = "商品数量")
+	private BigDecimal goodsNum;
+
+	@ExcelProperty(value = "库区")
+	private String regionName;
+
+	@ExcelProperty(value = "规格型号")
+	private String propertyName;
+
+	@ExcelProperty(value = "花纹")
+	private String pattern;
+
+	@ExcelProperty(value = "创建时间")
+	private Date createTime;
+
+
+}

+ 16 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/controller/CenterOrderPlanController.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.ecp.tire.center.warehouse.api.plan.entity.CenterOrderPlan;
 import com.ecp.tire.center.warehouse.api.plan.vo.CenterOrderPlanVo;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportCodeExcel;
 import com.ecp.tire.center.warehouse.api.storage.vo.PlanAuditVo;
 import com.ecp.tire.center.warehouse.plan.service.ICenterOrderPlanItemService;
 import com.ecp.tire.center.warehouse.plan.service.ICenterOrderPlanService;
@@ -11,6 +13,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springblade.common.annotation.RepeatSubmit;
+import org.springblade.common.enums.CommonEnum;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -18,6 +21,7 @@ import org.springblade.salesPart.excel.ShipItemImportXSCodeExcel;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.List;
 
@@ -122,4 +126,16 @@ public class CenterOrderPlanController{
 		return centerOrderPlanService.importCenterPlanItemCode(excelList);
 	}
 
+
+	@GetMapping("/exportPlanInData")
+	public void exportPlanInData(CenterOrderPlanVo centerOrderPlanVo, HttpServletResponse response) {
+		List<CenterExportPlanInVo> excelList = centerOrderPlanService.exportPlanInData(centerOrderPlanVo);
+		String sheetName = "RP".equals(centerOrderPlanVo.getBsType()) ? "入库单明细" : "出库单明细";
+		if (!CollectionUtils.isEmpty(excelList)) {
+			excelList.forEach(excel -> excel.setStatusName(CommonEnum.ONE.info.equals(excel.getStatusName())? "提交" : "保存"));
+		}
+		ExcelUtil.export(response, sheetName, sheetName, excelList, CenterExportPlanInVo.class);
+	}
+
+
 }

+ 13 - 3
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/impl/CenterOrderPlanServiceImpl.java

@@ -9,6 +9,7 @@ import com.ecp.tire.center.warehouse.api.plan.vo.CenterOrderPlanVo;
 import com.ecp.tire.center.warehouse.api.ship.entity.CenterShip;
 import com.ecp.tire.center.warehouse.api.ship.entity.CenterShipCost;
 import com.ecp.tire.center.warehouse.api.stock.entity.CenterStockDesc;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo;
 import com.ecp.tire.center.warehouse.api.storage.vo.PlanAuditVo;
 import com.ecp.tire.center.warehouse.plan.mapper.CenterOrderPlanItemMapper;
 import com.ecp.tire.center.warehouse.plan.mapper.CenterOrderPlanMapper;
@@ -113,7 +114,7 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 		if (!AuthUtil.isAdmin()) {
 			lambdaQueryWrapper.eq(CenterOrderPlan::getCreateUser, bladeUser.getUserId());
 			lambdaQueryWrapper.and(queryWrapper -> queryWrapper.eq(CenterOrderPlan::getCreateDept, bladeUser.getDeptId())
-				.or().eq(CenterOrderPlan::getWarehouseKeeper, bladeUser.getDeptId()));
+				.or().eq(CenterOrderPlan::getWarehouseKeeper, bladeUser.getUserId()));
 		}
 		query.setDescs("create_time");
 		return baseMapper.selectPage(Condition.getPage(query), lambdaQueryWrapper);
@@ -446,6 +447,15 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 		return R.data(text.length() == 0 ? list : "导入失败:" + text);
 	}
 
+	@Override
+	public List<CenterExportPlanInVo> exportPlanInData(CenterOrderPlanVo centerOrderPlanVo) {
+		BladeUser bladeUser = AuthUtil.getUser();
+		centerOrderPlanVo.setCreateUser(bladeUser.getUserId());
+		centerOrderPlanVo.setCreateDept(Long.valueOf(bladeUser.getDeptId()));
+		centerOrderPlanVo.setIsAdmin(AuthUtil.isAdmin() ? 0: 1);
+		return baseMapper.exportPlanInData(centerOrderPlanVo);
+	}
+
 	private R<CenterOrderPlan> insertOrUpdatePlan (CenterOrderPlanVo centerOrderPlanVo, BladeUser bladeUser,
 												List<CenterOrderPlanItem> centerOrderPlanItemList) {
 		CenterOrderPlan insertCenterOrderPlan = new CenterOrderPlan();
@@ -494,8 +504,8 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 			return R.fail("货主信息不存在");
 		}
 		if (!CollectionUtils.isEmpty(centerOrderPlanVo.getPlanItemsList())) {
-			long setKey = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> NumberEnum.Zero.number.equals(item.getIsDeleted())).map(item -> item.getGoodsId() + item.getDot()).distinct().count();
-			long realCount = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> NumberEnum.Zero.number.equals(item.getIsDeleted())).count();
+			long setKey = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(item -> item.getGoodsId() + item.getDot()).distinct().count();
+			long realCount = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).count();
 			if (!Objects.equals(setKey, realCount)) {
 				return R.fail("明细数据存在重复商品,请先处理后再保存");
 			}

+ 12 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/mapper/CenterOrderPlanMapper.java

@@ -2,11 +2,23 @@ package com.ecp.tire.center.warehouse.plan.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ecp.tire.center.warehouse.api.plan.entity.CenterOrderPlan;
+import com.ecp.tire.center.warehouse.api.plan.vo.CenterOrderPlanVo;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * @author Rain
  */
 @Mapper
 public interface CenterOrderPlanMapper extends BaseMapper<CenterOrderPlan> {
+
+	/**
+	 * 获取入库单数据
+	 *
+	 * @param centerOrderPlanVo 入库单参数
+	 * @return 入库单数据
+	 */
+	List<CenterExportPlanInVo> exportPlanInData(CenterOrderPlanVo centerOrderPlanVo);
 }

+ 50 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/mapper/CenterOrderPlanMapper.xml

@@ -47,9 +47,59 @@
         <result column="warehouse_keeper_name" property="warehouseKeeperName"/>
 
     </resultMap>
+    <select id="exportPlanInData" resultType="com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo"
+            parameterType="com.ecp.tire.center.warehouse.api.plan.vo.CenterOrderPlanVo">
+        SELECT
+        cop.ord_no as planNo,
+        cop.status as statusName,
+        cop.goods_total_num as totalNum,
+        cop.customer_name as customerName,
+        cop.storage_name as storageName,
+        copi.brand_name as brandName,
+        copi.goods_no as code,
+        copi.goods_name as goodsName,
+        copi.dot,
+        copi.goods_num as goodsNum,
+        copi.region_name as regionName,
+        copi.property_name as propertyName,
+        copi.pattern as pattern,
+        copi.create_time as createTime
+        FROM
+        center_order_plan cop
+        INNER JOIN center_order_plan_items copi ON cop.id = copi.pid
+        where
+         cop.tenant_id = #{tenantId}
+        and cop.is_deleted = 0
+        and copi.is_deleted = 0
+        and cop.bs_type = #{bsType}
+        <if test="storageId != null">
+            and cop.storage_id = #{storageId}
+        </if>
+        <if test="status != null and status != ''">
+            and cop.status = #{status}
+        </if>
 
+        <if test="storageName != null and storageName != ''">
+            and cop.storage_name like concat('%', #{storageName}, '%')
+        </if>
 
+        <if test="customerName != null and customerName != ''">
+            and cop.customer_name like concat('%', #{customerName}, '%')
+        </if>
 
+        <if test="ordNo != null and ordNo != ''">
+            and cop.ord_no like concat('%', #{ordNo}, '%')
+        </if>
+        <if test="businesDateList != null and businesDateList.size() > 0">
+            and cop.busines_date >= #{businesDateList[0]}
+            and cop.busines_date &lt;= #{businesDateList[1]}
+        </if>
+        <if test="isAdmin == 0">
+            and cop.create_user = #{createUser}
+            and (cop.create_dept = #{createDept} or cop.warehouse_keeper = #{createUser})
+        </if>
+        order by cop.id desc
+    </select>
 
 
 </mapper>

+ 10 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/service/ICenterOrderPlanService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ecp.tire.center.warehouse.api.plan.entity.CenterOrderPlan;
 import com.ecp.tire.center.warehouse.api.plan.vo.CenterOrderPlanVo;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo;
 import com.ecp.tire.center.warehouse.api.storage.vo.PlanAuditVo;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -74,4 +75,13 @@ public interface ICenterOrderPlanService extends IService<CenterOrderPlan> {
 	 * @return 结果
 	 */
 	R importCenterPlanItemCode(List<ShipItemImportXSCodeExcel> excelList);
+
+
+	/**
+	 * 导出入库计划
+	 *
+	 * @param centerOrderPlanVo 入库计划参数
+	 * @return 结果
+	 */
+	List<CenterExportPlanInVo> exportPlanInData(CenterOrderPlanVo centerOrderPlanVo);
 }