523096025 преди 2 месеца
родител
ревизия
a59ab9461a
променени са 25 файла, в които са добавени 790 реда и са изтрити 2 реда
  1. 42 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/controller/ErpBdMaterialGroupController.java
  2. 41 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/entity/ErpBdMaterialGroup.java
  3. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/mapper/ErpBdMaterialGroupMapper.java
  4. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/service/IErpBdMaterialGroupService.java
  5. 20 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpBdMaterialGroupServiceImpl.java
  6. 100 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/controller/SalePlanController.java
  7. 93 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/controller/SaleVisitController.java
  8. 44 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SalePlan.java
  9. 54 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleVisit.java
  10. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SalePlanMapper.java
  11. 21 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SaleVisitMapper.java
  12. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISalePlanService.java
  13. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISaleVisitService.java
  14. 20 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SalePlanServiceImpl.java
  15. 20 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleVisitServiceImpl.java
  16. 44 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/controller/WarehouseWarningController.java
  17. 53 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/entity/WarehouseWarning.java
  18. 16 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/mapper/WarehouseWarningMapper.java
  19. 20 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/IWarehouseWarningService.java
  20. 57 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseWarningServiceImpl.java
  21. 15 0
      huimv-farm/src/main/resources/mapper/ErpBdMaterialGroupMapper.xml
  22. 2 2
      huimv-farm/src/main/resources/mapper/PurchasePriceMapper.xml
  23. 13 0
      huimv-farm/src/main/resources/mapper/SalePlanMapper.xml
  24. 20 0
      huimv-farm/src/main/resources/mapper/SaleVisitMapper.xml
  25. 15 0
      huimv-farm/src/main/resources/mapper/WarehouseWarningMapper.xml

+ 42 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/controller/ErpBdMaterialGroupController.java

@@ -0,0 +1,42 @@
+package vip.xiaonuo.erp.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.erp.entity.ErpBdMaterial;
+import vip.xiaonuo.erp.entity.ErpBdMaterialGroup;
+import vip.xiaonuo.erp.mapper.ErpBdMaterialGroupMapper;
+import vip.xiaonuo.erp.param.ErpBdMaterialEditParam;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-04
+ */
+@RestController
+@RequestMapping("/erp-bd-material-group")
+public class ErpBdMaterialGroupController {
+
+    @Autowired
+    private ErpBdMaterialGroupMapper erpBdMaterialGroupMapper;
+
+    @PostMapping("/getAllChanPin")
+    public CommonResult<List<ErpBdMaterialGroup>> edit() {
+        return CommonResult.data( erpBdMaterialGroupMapper.selectList(new QueryWrapper<ErpBdMaterialGroup>().like("ffullparentid","100568")));
+    }
+
+}

+ 41 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/entity/ErpBdMaterialGroup.java

@@ -0,0 +1,41 @@
+package vip.xiaonuo.erp.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("erp_bd_material_group")
+public class ErpBdMaterialGroup implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer fid;
+
+    private String fnumber;
+
+    private Integer fparentid;
+
+    private String ffullparentid;
+
+    private String fname;
+
+
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/mapper/ErpBdMaterialGroupMapper.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.erp.mapper;
+
+import vip.xiaonuo.erp.entity.ErpBdMaterialGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-04
+ */
+public interface ErpBdMaterialGroupMapper extends BaseMapper<ErpBdMaterialGroup> {
+
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/service/IErpBdMaterialGroupService.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.erp.service;
+
+import vip.xiaonuo.erp.entity.ErpBdMaterialGroup;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-04
+ */
+public interface IErpBdMaterialGroupService extends IService<ErpBdMaterialGroup> {
+
+}

+ 20 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpBdMaterialGroupServiceImpl.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.erp.service.impl;
+
+import vip.xiaonuo.erp.entity.ErpBdMaterialGroup;
+import vip.xiaonuo.erp.mapper.ErpBdMaterialGroupMapper;
+import vip.xiaonuo.erp.service.IErpBdMaterialGroupService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-04
+ */
+@Service
+public class ErpBdMaterialGroupServiceImpl extends ServiceImpl<ErpBdMaterialGroupMapper, ErpBdMaterialGroup> implements IErpBdMaterialGroupService {
+
+}

+ 100 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/controller/SalePlanController.java

@@ -0,0 +1,100 @@
+package vip.xiaonuo.sale.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.production.param.ProductionPageParam;
+import vip.xiaonuo.quality.entity.QualityWrite;
+import vip.xiaonuo.quality.param.QualityWriteAddParam;
+import vip.xiaonuo.quality.param.QualityWriteListParam;
+import vip.xiaonuo.sale.entity.SalePlan;
+import vip.xiaonuo.sale.mapper.SalePlanMapper;
+import vip.xiaonuo.sale.service.ISalePlanService;
+import vip.xiaonuo.write.entity.WriteProduct;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@RestController
+@Api(tags = "销售计划")
+@ApiSupport(author = "wang", order = 1)
+@RequestMapping("/sale-plan")
+public class SalePlanController {
+    @Autowired
+    private ISalePlanService planService;
+
+    @PostMapping("/add")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("销售计划填报添加")
+    public CommonResult add(@RequestBody SalePlan param){
+         planService.save(param);
+        return CommonResult.ok();
+    }
+
+    @PostMapping("/edit")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("销售计划填报修改")
+    public CommonResult edit(@RequestBody SalePlan param) {
+        planService.updateById(param);
+        return CommonResult.ok();
+    }
+
+    @PostMapping("/delete")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("销售计划填报删除")
+    public CommonResult delete(@RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        planService.removeById(id);
+        return CommonResult.ok();
+  
+    }
+
+    @PostMapping("/page")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("销售计划填报分页")
+    public CommonResult<Page<SalePlan>> page(@RequestBody ProductionPageParam pageParam) {
+
+        Integer pageSize = pageParam.getPageSize();
+        Integer pageNum = pageParam.getPageNum();
+        String orgId = pageParam.getOrgId();
+        QueryWrapper<SalePlan> queryWrapper = new QueryWrapper();
+        Page<SalePlan> page = new Page<>(pageNum, pageSize);
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        
+        return CommonResult.data(planService.page(page,queryWrapper));
+    }
+
+    @PostMapping("/list")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("销售计划填报列表")
+    public CommonResult<List<SalePlan>> list(@RequestBody QualityWriteListParam listParam) {
+        String orgId = listParam.getOrgId();
+        String time = listParam.getTime();
+        QueryWrapper<SalePlan> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        return CommonResult.data(planService.list(queryWrapper));
+    }
+
+
+}

+ 93 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/controller/SaleVisitController.java

@@ -0,0 +1,93 @@
+package vip.xiaonuo.sale.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.production.param.ProductionPageParam;
+import vip.xiaonuo.quality.param.QualityWriteListParam;
+import vip.xiaonuo.sale.entity.SaleVisit;
+import vip.xiaonuo.sale.service.ISaleVisitService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@RestController
+@RequestMapping("/sale-visit")
+@Api(tags = "拜访次数")
+public class SaleVisitController {
+    @Autowired
+    private ISaleVisitService saleVisitService;
+    
+    @PostMapping("/add")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("拜访次数填报添加")
+    public CommonResult add(@RequestBody SaleVisit param){
+        saleVisitService.save(param);
+        return CommonResult.ok();
+    }
+
+    @PostMapping("/edit")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("拜访次数填报修改")
+    public CommonResult edit(@RequestBody SaleVisit param) {
+        saleVisitService.updateById(param);
+        return CommonResult.ok();
+    }
+
+    @PostMapping("/delete")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("拜访次数填报删除")
+    public CommonResult delete(@RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        saleVisitService.removeById(id);
+        return CommonResult.ok();
+
+    }
+
+    @PostMapping("/page")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("拜访次数填报分页")
+    public CommonResult<Page<SaleVisit>> page(@RequestBody ProductionPageParam pageParam) {
+
+        Integer pageSize = pageParam.getPageSize();
+        Integer pageNum = pageParam.getPageNum();
+        String orgId = pageParam.getOrgId();
+        QueryWrapper<SaleVisit> queryWrapper = new QueryWrapper();
+        Page<SaleVisit> page = new Page<>(pageNum, pageSize);
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+
+        return CommonResult.data(saleVisitService.page(page,queryWrapper));
+    }
+
+    @PostMapping("/list")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("拜访次数填报列表")
+    public CommonResult<List<SaleVisit>> list(@RequestBody QualityWriteListParam listParam) {
+        String orgId = listParam.getOrgId();
+        String time = listParam.getTime();
+        QueryWrapper<SaleVisit> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        return CommonResult.data(saleVisitService.list(queryWrapper));
+    }
+
+}

+ 44 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SalePlan.java

@@ -0,0 +1,44 @@
+package vip.xiaonuo.sale.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sale_plan")
+public class SalePlan implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @JsonFormat(pattern = "yyyy-MM",timezone = "GMT+8")
+    private Date createTime;
+
+    private String saleMoney;
+
+    private String orgId;
+    private String orgName;
+
+
+}

+ 54 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleVisit.java

@@ -0,0 +1,54 @@
+package vip.xiaonuo.sale.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sale_visit")
+public class SaleVisit implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer visitTime;
+
+    @JsonFormat(pattern = "yyyy-MM",timezone = "GMT+8")
+    private Date createTime;
+
+    private String kehu;
+
+    private String saleName;
+
+    private String orgId;
+    private String orgName;
+
+    @TableField(exist = false)
+    private String customerName;
+
+    @TableField(exist = false)
+    private String visitNumber;
+
+
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SalePlanMapper.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.sale.mapper;
+
+import vip.xiaonuo.sale.entity.SalePlan;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+public interface SalePlanMapper extends BaseMapper<SalePlan> {
+
+}

+ 21 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SaleVisitMapper.java

@@ -0,0 +1,21 @@
+package vip.xiaonuo.sale.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.sale.entity.SaleTarget;
+import vip.xiaonuo.sale.entity.SaleVisit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+public interface SaleVisitMapper extends BaseMapper<SaleVisit> {
+
+    SaleTarget selectOneMonth(@Param(Constants.WRAPPER)QueryWrapper<SaleTarget> queryWrapper);
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISalePlanService.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.sale.service;
+
+import vip.xiaonuo.sale.entity.SalePlan;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+public interface ISalePlanService extends IService<SalePlan> {
+
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISaleVisitService.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.sale.service;
+
+import vip.xiaonuo.sale.entity.SaleVisit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+public interface ISaleVisitService extends IService<SaleVisit> {
+
+}

+ 20 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SalePlanServiceImpl.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.sale.service.impl;
+
+import vip.xiaonuo.sale.entity.SalePlan;
+import vip.xiaonuo.sale.mapper.SalePlanMapper;
+import vip.xiaonuo.sale.service.ISalePlanService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@Service
+public class SalePlanServiceImpl extends ServiceImpl<SalePlanMapper, SalePlan> implements ISalePlanService {
+
+}

+ 20 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleVisitServiceImpl.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.sale.service.impl;
+
+import vip.xiaonuo.sale.entity.SaleVisit;
+import vip.xiaonuo.sale.mapper.SaleVisitMapper;
+import vip.xiaonuo.sale.service.ISaleVisitService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-06
+ */
+@Service
+public class SaleVisitServiceImpl extends ServiceImpl<SaleVisitMapper, SaleVisit> implements ISaleVisitService {
+
+}

+ 44 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/controller/WarehouseWarningController.java

@@ -0,0 +1,44 @@
+package vip.xiaonuo.warehouse.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.warehouse.entity.WarehouseWarning;
+import vip.xiaonuo.warehouse.param.WarehouseWarningPageParam;
+import vip.xiaonuo.warehouse.service.IWarehouseWarningService;
+import vip.xiaonuo.write.entity.WriteWarning;
+import vip.xiaonuo.write.param.WriteWarningPageParam;
+import vip.xiaonuo.write.service.IWriteWarningService;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-19
+ */
+@RestController
+@RequestMapping("/warehouse-warning")
+public class WarehouseWarningController {
+
+
+    @Autowired
+    private IWarehouseWarningService warehouseWarningService;
+
+    @PostMapping("/write-warning/page")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("库存预警分页")
+    public CommonResult<Page<WarehouseWarning>> page(@RequestBody WarehouseWarningPageParam pageParam) {
+        return CommonResult.data(warehouseWarningService.page(pageParam));
+    }
+
+}

+ 53 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/entity/WarehouseWarning.java

@@ -0,0 +1,53 @@
+package vip.xiaonuo.warehouse.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("warehouse_warning")
+public class WarehouseWarning implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String warehouseName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    private String warehouseQty;
+
+    private int warehouseSafeQty;
+
+    private String orgId;
+
+    private String fnumber;
+
+    private int materialid;
+
+    private String cangku;
+
+
+}

+ 16 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/mapper/WarehouseWarningMapper.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.warehouse.mapper;
+
+import vip.xiaonuo.warehouse.entity.WarehouseWarning;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-19
+ */
+public interface WarehouseWarningMapper extends BaseMapper<WarehouseWarning> {
+
+}

+ 20 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/IWarehouseWarningService.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.warehouse.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import vip.xiaonuo.warehouse.entity.WarehouseWarning;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.warehouse.param.WarehouseWarningPageParam;
+import vip.xiaonuo.write.entity.WriteWarning;
+import vip.xiaonuo.write.param.WriteWarningPageParam;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-19
+ */
+public interface IWarehouseWarningService extends IService<WarehouseWarning> {
+    Page<WarehouseWarning> page(WarehouseWarningPageParam pageParam);
+}

+ 57 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseWarningServiceImpl.java

@@ -0,0 +1,57 @@
+package vip.xiaonuo.warehouse.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import vip.xiaonuo.warehouse.entity.WarehouseWarning;
+import vip.xiaonuo.warehouse.mapper.WarehouseWarningMapper;
+import vip.xiaonuo.warehouse.param.WarehouseWarningPageParam;
+import vip.xiaonuo.warehouse.service.IWarehouseWarningService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import vip.xiaonuo.write.entity.WriteWarning;
+
+import java.util.Calendar;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2025-06-19
+ */
+@Service
+public class WarehouseWarningServiceImpl extends ServiceImpl<WarehouseWarningMapper, WarehouseWarning> implements IWarehouseWarningService {
+    @Autowired
+    private WarehouseWarningMapper warehouseWarningMapper;
+
+    @Override
+    public Page<WarehouseWarning> page(WarehouseWarningPageParam pageParam) {
+        String orgId = pageParam.getOrgId();
+        String warehouseName = pageParam.getWarehouseName();
+        String startDate = pageParam.getStartDate();
+        String endDate = pageParam.getEndDate();
+        Integer pageNum = pageParam.getPageNum();
+        Integer pageSize = pageParam.getPageSize();
+        if (pageNum == null || pageNum<1 ){
+            pageNum =1;
+        }
+        if (pageSize == null || pageSize<1 ){
+            pageNum =10;
+        }
+
+        Page<WarehouseWarning> page = new Page<>(pageNum,pageSize);
+        QueryWrapper<WarehouseWarning> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.like(StringUtils.isNotBlank(orgId), "warehouse_name", warehouseName);
+
+        queryWrapper.ge(StringUtils.isNotBlank(startDate), "create_time", startDate);
+        queryWrapper.le(StringUtils.isNotBlank(endDate), "create_time", endDate);
+
+
+        return warehouseWarningMapper.selectPage(page, queryWrapper);
+
+    }
+}

+ 15 - 0
huimv-farm/src/main/resources/mapper/ErpBdMaterialGroupMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.erp.mapper.ErpBdMaterialGroupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="vip.xiaonuo.erp.entity.ErpBdMaterialGroup">
+        <id column="id" property="id" />
+        <result column="fid" property="fid" />
+        <result column="fnumber" property="fnumber" />
+        <result column="fparentid" property="fparentid" />
+        <result column="ffullparentid" property="ffullparentid" />
+        <result column="fname" property="fname" />
+    </resultMap>
+
+</mapper>

+ 2 - 2
huimv-farm/src/main/resources/mapper/PurchasePriceMapper.xml

@@ -49,7 +49,7 @@ SELECT DATE_FORMAT(create_time, '%Y-%m') AS time,
     <select id="getMonthlyAvgPricesYear2" resultType="vip.xiaonuo.purchase.entity.vo.PurchasePriceVo">
 
         SELECT DATE_FORMAT(create_time, '%Y') AS time,
-           SUM(contract_money) /SUM(material_number) AS avg_price
+           round( SUM(contract_money) /SUM(material_number) ,2)AS avg_price
             FROM purchase_contract
              ${ew.customSqlSegment}
              GROUP BY DATE_FORMAT(create_time, '%Y')
@@ -59,7 +59,7 @@ SELECT DATE_FORMAT(create_time, '%Y-%m') AS time,
     <select id="getMonthlyAvgMonthYear2" resultType="vip.xiaonuo.purchase.entity.vo.PurchasePriceVo">
 
         SELECT DATE_FORMAT(create_time, '%Y-%m') AS time,
-           SUM(contract_money) /SUM(material_number) AS avg_price
+             round(SUM(contract_money) /SUM(material_number) ) AS avg_price
             FROM purchase_contract
              ${ew.customSqlSegment}
  GROUP BY DATE_FORMAT(create_time, '%Y-%m')

+ 13 - 0
huimv-farm/src/main/resources/mapper/SalePlanMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.sale.mapper.SalePlanMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="vip.xiaonuo.sale.entity.SalePlan">
+        <id column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="sale_money" property="saleMoney" />
+        <result column="org_id" property="orgId" />
+    </resultMap>
+
+</mapper>

+ 20 - 0
huimv-farm/src/main/resources/mapper/SaleVisitMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.sale.mapper.SaleVisitMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="vip.xiaonuo.sale.entity.SaleVisit">
+        <id column="id" property="id" />
+        <result column="visit_time" property="visitTime" />
+        <result column="create_time" property="createTime" />
+        <result column="kehu" property="kehu" />
+        <result column="sale_name" property="saleName" />
+        <result column="org_id" property="orgId" />
+    </resultMap>
+    <select id="selectOneMonth" resultType="vip.xiaonuo.sale.entity.SaleTarget">
+
+        SELECT IFNULL (SUM(visit_time) ,0) visitNumber  FROM `sale_visit`   visitNumber
+         ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 15 - 0
huimv-farm/src/main/resources/mapper/WarehouseWarningMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.warehouse.mapper.WarehouseWarningMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="vip.xiaonuo.warehouse.entity.WarehouseWarning">
+        <id column="id" property="id" />
+        <result column="warehouse_name" property="warehouseName" />
+        <result column="create_time" property="createTime" />
+        <result column="warehouse_qty" property="warehouseQty" />
+        <result column="warehouse_safe_qty" property="warehouseSafeQty" />
+        <result column="org_id" property="orgId" />
+    </resultMap>
+
+</mapper>