523096025 4 months ago
parent
commit
a380225b7b
38 changed files with 1460 additions and 13 deletions
  1. 54 0
      huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyBusinessController.java
  2. 23 0
      huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyOverdueController.java
  3. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyOverdue.java
  4. 47 0
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/vo/MoneyBusinessVo.java
  5. 2 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyBusinessService.java
  6. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyOverdueService.java
  7. 10 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBusinessServiceImpl.java
  8. 11 2
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java
  9. 5 3
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseContractServiceImpl.java
  10. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseOrderServiceImpl.java
  11. 4 2
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchasePriceServiceImpl.java
  12. 0 1
      huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityEffecticeController.java
  13. 135 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityFenxibaogaoController.java
  14. 53 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityManufacturerController.java
  15. 66 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityReagentController.java
  16. 108 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/entity/QualityFenxibaogao.java
  17. 34 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/enums/QualityFenxibaogaoEnum.java
  18. 34 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/mapper/QualityFenxibaogaoMapper.java
  19. 49 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/ChengPingZhiParam.java
  20. 104 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoAddParam.java
  21. 104 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoEditParam.java
  22. 35 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoIdParam.java
  23. 54 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoPageParam.java
  24. 46 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentAddParam.java
  25. 51 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentEditParam.java
  26. 35 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentIdParam.java
  27. 51 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentPageParam.java
  28. 22 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/vo/ChengPinQuXianVo.java
  29. 34 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/param/vo/ShiJiParam.java
  30. 7 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/service/IQualityReagentService.java
  31. 84 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/service/QualityFenxibaogaoService.java
  32. 141 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/service/impl/QualityFenxibaogaoServiceImpl.java
  33. 25 0
      huimv-farm/src/main/java/vip/xiaonuo/quality/service/impl/QualityReagentServiceImpl.java
  34. 2 1
      huimv-farm/src/main/resources/mapper/PurchaseOrderMapper.xml
  35. 20 0
      huimv-farm/src/main/resources/mapper/QualityFenxibaogaoMapper.xml
  36. 4 0
      snowy-plugin-api/snowy-plugin-gen-api/target/maven-archiver/pom.properties
  37. 0 0
      snowy-plugin-api/snowy-plugin-gen-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  38. 1 0
      snowy-plugin-api/snowy-plugin-gen-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

+ 54 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyBusinessController.java

@@ -2,23 +2,30 @@ package vip.xiaonuo.money.controller;
 
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
+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.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.HrBaseEmployeeInfo;
 import vip.xiaonuo.hr.modular.baseemployeeinfo.param.HrBaseEmployeeInfoPageParam;
 import vip.xiaonuo.money.entity.MoneyBusiness;
+import vip.xiaonuo.money.entity.vo.MoneyBusinessVo;
 import vip.xiaonuo.money.param.*;
 import vip.xiaonuo.money.service.IMoneyBusinessService;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -46,6 +53,7 @@ public class MoneyBusinessController {
         return CommonResult.data(businessService.listBusiness(moneyBusinessParam));
     }
 
+
     @ApiOperationSupport(order = 2)
     @ApiOperation("指标卡列表")
     @PostMapping("/money/getPage")
@@ -113,4 +121,50 @@ public class MoneyBusinessController {
         List<DsBusSaleMoneyParam> endMap =  businessService.getMoneyDetail(dsBusParam);
         return CommonResult.data(endMap);
     }
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("已交税金填报")
+    @PostMapping("/money/addBusines")
+    public CommonResult<JSONArray> listBusiness(@RequestBody MoneyBusinessVo moneyBusinessParam) {
+        String orgId = moneyBusinessParam.getOrgId();
+        if (StringUtils.isBlank(orgId)){
+            throw new CommonException("请选择公司");
+        }
+        MoneyBusiness moneyBusiness = new MoneyBusiness();
+        moneyBusiness.setOrgId(moneyBusinessParam.getOrgId());
+        moneyBusiness.setTaxes(moneyBusinessParam.getTaxes());
+        moneyBusiness.setCreateTime(DateUtil.parse(moneyBusinessParam.getCreateTime(),"yyyy-MM"));
+        businessService.save(moneyBusiness);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("已交税金列表")
+    @PostMapping("/money/listBusines")
+    public CommonResult<Page<MoneyBusiness>> listBusines(@RequestBody  MoneyOverduePageParam pageParam) {
+        return  CommonResult.data(businessService.listBusines(pageParam));
+    }
+
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("已交税金删除")
+    @PostMapping("/money/deleteBusines")
+    public CommonResult<String> deleteBusines(@RequestBody  MoneyBusiness business) {
+        businessService.deleteBusiness(business);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("已交税金修改")
+    @PostMapping("/money/updateBusines")
+    public CommonResult<String> updateBusines(@RequestBody MoneyBusinessVo moneyBusinessParam) {
+
+        MoneyBusiness moneyBusiness = new MoneyBusiness();
+        moneyBusiness.setTaxes(moneyBusinessParam.getTaxes());
+        moneyBusiness.setId(moneyBusinessParam.getId());
+        moneyBusiness.setCreateTime(DateUtil.parse(moneyBusinessParam.getCreateTime(),"yyyy-MM"));
+        businessService.updateById(moneyBusiness);
+        return CommonResult.ok();
+    }
+
+
 }

+ 23 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyOverdueController.java

@@ -3,6 +3,7 @@ package vip.xiaonuo.money.controller;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+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;
@@ -15,6 +16,7 @@ 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.exception.CommonException;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyBorrowWarning;
 import vip.xiaonuo.money.entity.MoneyOverdue;
@@ -81,4 +83,25 @@ public class MoneyOverdueController {
     public CommonResult<List<MoneyOverdue>> listUserName(@RequestBody Map<String,String> paramsMap) {
         return CommonResult.data(overdueService.listUserName(paramsMap));
     }
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("逾期明细表添加")
+    @PostMapping("/money-overdue/overdueAdd")
+    public CommonResult<String> overdueAdd(@RequestBody MoneyOverdue moneyOverdue) {
+        String orgId = moneyOverdue.getOrgId();
+        if (StringUtils.isBlank(orgId)){
+            throw new CommonException("请选择公司");
+        }
+        overdueService.save(moneyOverdue);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("客户筛选")
+    @PostMapping("/money-overdue/keHu")
+    public CommonResult< List<MoneyOverdue>> keHu(@RequestBody MoneyOverdue moneyOverdue) {
+
+        return CommonResult.data(  overdueService.keHu(moneyOverdue));
+    }
+
+
 }

+ 2 - 2
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyOverdue.java

@@ -80,14 +80,14 @@ public class MoneyOverdue implements Serializable {
      * 到期日
      */
     @ApiModelProperty(value = "到期日", position = 7)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date endTime;
 
     /**
      * 逾期时间
      */
     @ApiModelProperty(value = "逾期时间", position = 8)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date overdueTime;
 
     /**

+ 47 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/entity/vo/MoneyBusinessVo.java

@@ -0,0 +1,47 @@
+package vip.xiaonuo.money.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sun.istack.NotNull;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 财务营业情况
+ * </p>
+ *
+ * @author author
+ * @since 2024-11-19
+ */
+@Data
+public class MoneyBusinessVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    private Integer id;
+
+    /**
+     * 组织id
+     */
+    @ApiModelProperty(value = "组织id", position = 1)
+    private String orgId;
+
+
+    @ApiModelProperty(value = "已交税金", position = 5)
+    private String taxes;
+
+    @ApiModelProperty(value = "创建时间", position = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private String  createTime;
+
+
+}

+ 2 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyBusinessService.java

@@ -46,4 +46,6 @@ public interface IMoneyBusinessService extends IService<MoneyBusiness> {
     List<DsBusAllParam> getBorrowDetail(DsBusParam dsBusParam);
 
     List<DsBusSaleMoneyParam> getMoneyDetail(DsBusParam dsBusParam);
+
+    Page<MoneyBusiness> listBusines(MoneyOverduePageParam pageParam);
 }

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyOverdueService.java

@@ -39,4 +39,5 @@ public interface IMoneyOverdueService extends IService<MoneyOverdue> {
 
     //客户列表
     List<MoneyOverdue> listUserName(Map<String,String> paramsMap);
+    List<MoneyOverdue>  keHu(MoneyOverdue moneyOverdue);
 }

+ 10 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBusinessServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
 import vip.xiaonuo.money.entity.MoneyBusiness;
 import vip.xiaonuo.money.entity.MoneyCost;
+import vip.xiaonuo.money.entity.MoneyWarning;
 import vip.xiaonuo.money.mapper.MoneyBusinessMapper;
 import vip.xiaonuo.money.mapper.MoneyCostMapper;
 import vip.xiaonuo.money.param.*;
@@ -273,6 +274,15 @@ public class MoneyBusinessServiceImpl extends ServiceImpl<MoneyBusinessMapper, M
         return busAllParams;
     }
 
+    @Override
+    public  Page<MoneyBusiness> listBusines(MoneyOverduePageParam pageParam) {
+        QueryWrapper<MoneyBusiness> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(pageParam.getOrgId()), "org_id", pageParam.getOrgId()).ge("taxes" ,0);
+        Page<MoneyBusiness> page = new Page<MoneyBusiness>(pageParam.getPageNum(), pageParam.getPageSize());
+        return this.page(page, queryWrapper);
+
+    }
+
     public static String calculateYOYChange(double currentValue, double previousValue) {
         // 处理零值情况
         if (previousValue == 0) {

+ 11 - 2
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java

@@ -1,6 +1,7 @@
 package vip.xiaonuo.money.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
@@ -64,7 +65,7 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
         String orgId = overdueParam.getOrgId();
         QueryWrapper<MoneyWriteOverdue> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select("convert(IFNULL(sum(money),'0'),decimal(10,2)) money,end_time endTime");
+        queryWrapper.select("sum(money) money,end_time endTime");
         List<MoneyWriteOverdue> writeOverdues = writeOverdueMapper.selectList(queryWrapper);
         double count = 0.00;
         double isOverdue = 0.00;
@@ -72,7 +73,7 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
         JSONObject jsonObject = new JSONObject();
         DecimalFormat def = new DecimalFormat("0.00");
 
-        if (writeOverdues.size() != 0) {
+        if (ObjectUtil.isNotEmpty(writeOverdues)) {
             for (MoneyWriteOverdue overdue : writeOverdues) {
                 if (overdue.getEndTime().before(new Date())) {
                     isOverdue = isOverdue + Double.valueOf(overdue.getMoney());
@@ -167,6 +168,14 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
         return overdueMapper.selectList(queryWrapper);
     }
 
+    @Override
+    public List<MoneyOverdue>  keHu(MoneyOverdue moneyOverdue) {
+        String orgId = moneyOverdue.getOrgId();
+        List<MoneyOverdue> moneyOverdues = overdueMapper.selectList(new QueryWrapper<MoneyOverdue>().select("user_name").eq(StringUtils.isNotBlank(orgId), "org_id", orgId).groupBy("user_name"));
+
+        return moneyOverdues;
+    }
+
     /*数组排序*/
     public static JSONArray jsonArraySort(JSONArray jsonArr, String sortKey, boolean is_desc) {
         //存放排序结果json数组

+ 5 - 3
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseContractServiceImpl.java

@@ -50,7 +50,8 @@ public class PurchaseContractServiceImpl extends ServiceImpl<PurchaseContractMap
             if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + orderParam.getOrderType());
+//                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + orderParam.getOrderType());
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" );
             }
             List<PurchaseContract> contracts = contractMapper.selectList(queryWrapper);
             if (contracts.size() != 0) {
@@ -66,11 +67,12 @@ public class PurchaseContractServiceImpl extends ServiceImpl<PurchaseContractMap
                 }
             }
         } else {
-            queryWrapper.ge("create_time",  DateUtil.beginOfYear(new Date()));
+//            queryWrapper.ge("create_time",  DateUtil.beginOfYear(new Date()));
             if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')" + "," + orderParam.getOrderType());
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
+//                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')" + "," + orderParam.getOrderType());
             }
             List<PurchaseContract> contracts = contractMapper.selectList(queryWrapper);
             if (contracts.size() != 0) {

+ 2 - 2
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseOrderServiceImpl.java

@@ -224,8 +224,8 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
                 }
             }
         } else {
-            DateTime dateTime = DateUtil.beginOfYear(new Date());
-            queryWrapper.ge("create_time", dateTime);
+//            DateTime dateTime = DateUtil.beginOfYear(new Date());
+//            queryWrapper.ge("create_time", dateTime);
             if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             } else {

+ 4 - 2
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchasePriceServiceImpl.java

@@ -36,6 +36,7 @@ public class PurchasePriceServiceImpl extends ServiceImpl<PurchasePriceMapper, P
     public List<PurchasePriceVo> getList(PurchasePriceParam priceParam) {
         QueryWrapper<PurchasePrice> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(priceParam.getOrgId()), "org_id", priceParam.getOrgId());
+        queryWrapper.eq(StringUtils.isNotBlank(priceParam.getMaterial()), "material", priceParam.getMaterial());
         queryWrapper.select(" CONVERT(IFNULL(avg(price),'0'),decimal(10,2)) 'price',create_time createTime");
         Integer timeType = priceParam.getTimeType();
         List<PurchasePriceVo> list = new ArrayList<>();
@@ -43,7 +44,8 @@ public class PurchasePriceServiceImpl extends ServiceImpl<PurchasePriceMapper, P
             if ("".equals(priceParam.getMaterial()) || null == priceParam.getMaterial()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + priceParam.getMaterial());
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" );
+//                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + priceParam.getMaterial());
             }
             List<PurchasePrice> prices = priceMapper.selectList(queryWrapper);
             if (prices.size() != 0) {
@@ -60,7 +62,7 @@ public class PurchasePriceServiceImpl extends ServiceImpl<PurchasePriceMapper, P
             if ("".equals(priceParam.getMaterial()) || null == priceParam.getMaterial()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')" + "," + priceParam.getMaterial());
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             }
             QueryWrapper<PurchasePrice> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq(StringUtils.isNotBlank(priceParam.getOrgId()), "org_id", priceParam.getOrgId());

+ 0 - 1
huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityEffecticeController.java

@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.quality.entity.QualityEffectice;
-import vip.xiaonuo.quality.entity.QualityManufacturer;
 import vip.xiaonuo.quality.param.QualityEffectiveParam;
 import vip.xiaonuo.quality.param.QualityManufacturerParam;
 import vip.xiaonuo.quality.service.IQualityEffecticeService;

+ 135 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityFenxibaogaoController.java

@@ -0,0 +1,135 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.param.*;
+import vip.xiaonuo.quality.param.vo.ChengPinQuXianVo;
+import vip.xiaonuo.quality.service.QualityFenxibaogaoService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 质量分析报表控制器
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ */
+@Api(tags = "质量分析报表控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class QualityFenxibaogaoController {
+
+    @Resource
+    private QualityFenxibaogaoService qualityFenxibaogaoService;
+
+    /**
+     * 获取质量分析报表分页
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取质量分析报表分页")
+    @PostMapping("/biz/fenxibaogao/page")
+    public CommonResult<Page<QualityFenxibaogao>> page(QualityFenxibaogaoPageParam qualityFenxibaogaoPageParam) {
+        return CommonResult.data(qualityFenxibaogaoService.page(qualityFenxibaogaoPageParam));
+    }
+
+    /**
+     * 添加质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加质量分析报表")
+    @PostMapping("/biz/fenxibaogao/add")
+    public CommonResult<String> add(@RequestBody @Valid QualityFenxibaogaoAddParam qualityFenxibaogaoAddParam) {
+        qualityFenxibaogaoService.add(qualityFenxibaogaoAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperation("编辑质量分析报表")
+    @PostMapping("/biz/fenxibaogao/edit")
+    public CommonResult<String> edit(@RequestBody  QualityFenxibaogao qualityFenxibaogao) {
+        qualityFenxibaogaoService.edit(qualityFenxibaogao);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除质量分析报表")
+    @PostMapping("/biz/fenxibaogao/delete")
+    public CommonResult<String> delete(@RequestBody QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
+        qualityFenxibaogaoService.delete(qualityFenxibaogaoIdParamList);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("获取成品列表")
+    @PostMapping("/biz/fenxibaogao/getChengPin")
+    public CommonResult<List<QualityFenxibaogao>> getChengPin(@RequestBody ChengPingZhiParam chengPingZhiParam) {
+        List<QualityFenxibaogao> list =   qualityFenxibaogaoService.getChengPin(chengPingZhiParam);
+        return CommonResult.data(list);
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("获取检测项目列表")
+    @PostMapping("/biz/fenxibaogao/getJianCeXiangMu")
+    public CommonResult<List<QualityFenxibaogao>> getJianCeXiangMu(@RequestBody ChengPingZhiParam chengPingZhiParam) {
+        List<QualityFenxibaogao> list =   qualityFenxibaogaoService.getJianCeXiangMu(chengPingZhiParam);
+        return CommonResult.data(list);
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("获取成品中间体曲线")
+    @PostMapping("/biz/fenxibaogao/getChengPinQuXian")
+    public CommonResult<List<ChengPinQuXianVo>> getChengPinQuXian(@RequestBody ChengPingZhiParam chengPingZhiParam) {
+        List<ChengPinQuXianVo> list =   qualityFenxibaogaoService.getChengPinQuXian(chengPingZhiParam);
+        return CommonResult.data(list);
+    }
+
+
+
+}

+ 53 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityManufacturerController.java

@@ -1,6 +1,7 @@
 package vip.xiaonuo.quality.controller;
 
 
+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;
@@ -13,11 +14,17 @@ 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.exception.CommonException;
 import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
 import vip.xiaonuo.quality.entity.QualityManufacturer;
+import vip.xiaonuo.quality.param.QualityFenxibaogaoAddParam;
+import vip.xiaonuo.quality.param.QualityFenxibaogaoIdParam;
 import vip.xiaonuo.quality.param.QualityManufacturerParam;
 import vip.xiaonuo.quality.service.IQualityManufacturerService;
 
+import javax.validation.Valid;
+
 /**
  * <p>
  * 厂商质量级别评估 前端控制器
@@ -41,4 +48,50 @@ public class QualityManufacturerController {
     public CommonResult<Page<QualityManufacturer>> listPage(@RequestBody QualityManufacturerParam manufacturerParam) {
         return CommonResult.data(manufacturerService.listPage(manufacturerParam));
     }
+
+
+    /**
+     * 添加厂商质量级别评估
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加厂商质量级别评估")
+    @PostMapping("/biz/quality-manufacturer/add")
+    public CommonResult<String> add(@RequestBody  QualityManufacturer qualityManufacturer) {
+        String orgId = qualityManufacturer.getOrgId();
+        if (StringUtils.isBlank(orgId)){
+            throw new CommonException("请选择需要添加的公司");
+        }
+        manufacturerService.save(qualityManufacturer);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑厂商质量级别评估
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperation("编辑厂商质量级别评估")
+    @PostMapping("/biz/quality-manufacturer/edit")
+    public CommonResult<String> edit(@RequestBody QualityManufacturer qualityManufacturer) {
+        manufacturerService.updateById(qualityManufacturer);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除厂商质量级别评估
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除厂商质量级别评估")
+    @PostMapping("/biz/quality-manufacturer/delete")
+    public CommonResult<String> delete(@RequestBody QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
+        manufacturerService.removeById(qualityFenxibaogaoIdParamList.getId());
+        return CommonResult.ok();
+    }
 }

+ 66 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/controller/QualityReagentController.java

@@ -1,6 +1,7 @@
 package vip.xiaonuo.quality.controller;
 
 
+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;
@@ -13,9 +14,14 @@ 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.exception.CommonException;
 import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.quality.entity.QualityManufacturer;
 import vip.xiaonuo.quality.entity.QualityReagent;
+import vip.xiaonuo.quality.param.QualityFenxibaogaoIdParam;
+import vip.xiaonuo.quality.param.QualityManufacturerParam;
 import vip.xiaonuo.quality.param.QualityReagentParam;
+import vip.xiaonuo.quality.param.vo.ShiJiParam;
 import vip.xiaonuo.quality.service.IQualityReagentService;
 import vip.xiaonuo.risk.entity.RiskContract;
 import vip.xiaonuo.risk.param.RiskContractParam;
@@ -45,4 +51,64 @@ public class QualityReagentController {
     public CommonResult<List<QualityReagent>> getList(@RequestBody QualityReagentParam reagentParam) {
         return CommonResult.data(reagentService.getList(reagentParam));
     }
+
+    @PostMapping("/quality-reagent/listPage")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("试剂使用情况列表")
+    public CommonResult<Page<QualityReagent>> listPage(@RequestBody QualityManufacturerParam manufacturerParam) {
+        return CommonResult.data(reagentService.listPage(manufacturerParam));
+    }
+
+
+    /**
+     * 添加试剂使用情况
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加试剂使用情况")
+    @PostMapping("/biz/quality-reagent/add")
+    public CommonResult<String> add(@RequestBody  QualityReagent qualityManufacturer) {
+        String orgId = qualityManufacturer.getOrgId();
+        if (StringUtils.isBlank(orgId)){
+            throw new CommonException("请选择需要添加的公司");
+        }
+        reagentService.save(qualityManufacturer);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑试剂使用情况
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperation("编辑试剂使用情况")
+    @PostMapping("/biz/quality-reagent/edit")
+    public CommonResult<String> edit(@RequestBody QualityReagent qualityManufacturer) {
+        reagentService.updateById(qualityManufacturer);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除试剂使用情况
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除试剂使用情况")
+    @PostMapping("/biz/quality-reagent/delete")
+    public CommonResult<String> delete(@RequestBody QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
+        reagentService.removeById(qualityFenxibaogaoIdParamList.getId());
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("获取试剂列表")
+    @PostMapping("/biz/quality-reagent/getShiJi")
+    public CommonResult<List<QualityReagent> > getShiJi(@RequestBody ShiJiParam shiJiParam) {
+        return CommonResult.data( reagentService.getShiJi(shiJiParam));
+    }
 }

+ 108 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/entity/QualityFenxibaogao.java

@@ -0,0 +1,108 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量分析报表实体
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+@TableName("quality_fenxibaogao")
+public class QualityFenxibaogao {
+
+    /** ID */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "ID", position = 1)
+    private Integer id;
+
+    /** 检品名称 */
+    @ApiModelProperty(value = "检品名称", position = 2)
+    private String materialName;
+
+    /** 规格 */
+    @ApiModelProperty(value = "规格", position = 3)
+    private String spec;
+
+    /** 取样日期 */
+    @ApiModelProperty(value = "取样日期", position = 4)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date sampDate;
+
+    /** 自编批号 */
+    @ApiModelProperty(value = "自编批号", position = 5)
+    private String selfBatchNum;
+
+    /** 数量 */
+    @ApiModelProperty(value = "数量", position = 6)
+    private String quantity;
+
+    /** 检验日期 */
+    @ApiModelProperty(value = "检验日期", position = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inspecDate;
+
+    /** 厂家批号 */
+    @ApiModelProperty(value = "厂家批号", position = 8)
+    private String manufBatchNum;
+
+    /** 报告日期 */
+    @ApiModelProperty(value = "报告日期", position = 9)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date reportDate;
+
+    /** 生产单位 */
+    @ApiModelProperty(value = "生产单位", position = 10)
+    private String productionUnit;
+
+    /** 检验编号 */
+    @ApiModelProperty(value = "检验编号", position = 11)
+    private String inspecNum;
+
+    /** 检验项目 */
+    @ApiModelProperty(value = "检验项目", position = 12)
+    private String inspecItems;
+
+    /** 检验标准 */
+    @ApiModelProperty(value = "检验标准", position = 13)
+    private String inspecStandards;
+
+    /** 检验结果 */
+    @ApiModelProperty(value = "检验结果", position = 14)
+    private String inspecResults;
+
+    @ApiModelProperty(value = "车间名称", position = 14)
+    private String cheJianName;
+
+    @ApiModelProperty(value = "比旋度", position = 15)
+    private String specificOtation;
+    @ApiModelProperty(value = "0成品 1中间体", position = 15)
+    private Integer qualityType;
+
+    /** ORG_ID */
+    @ApiModelProperty(value = "ORG_ID", position = 15)
+    private String orgId;
+
+
+}

+ 34 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/enums/QualityFenxibaogaoEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.enums;
+
+import lombok.Getter;
+
+/**
+ * 质量分析报表枚举
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+public enum QualityFenxibaogaoEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    QualityFenxibaogaoEnum(String value) {
+        this.value = value;
+    }
+}

+ 34 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/mapper/QualityFenxibaogaoMapper.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.param.vo.ChengPinQuXianVo;
+
+import java.util.List;
+
+/**
+ * 质量分析报表Mapper接口
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+public interface QualityFenxibaogaoMapper extends BaseMapper<QualityFenxibaogao> {
+    List<ChengPinQuXianVo> getChengPinQuXianMonth(@Param(Constants.WRAPPER) QueryWrapper<QualityFenxibaogao> wrapper);
+
+    List<ChengPinQuXianVo> getChengPinQuXianYear(@Param(Constants.WRAPPER) QueryWrapper<QualityFenxibaogao> wrapper);
+}

+ 49 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/ChengPingZhiParam.java

@@ -0,0 +1,49 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质量分析报表查询参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class ChengPingZhiParam {
+
+    @ApiModelProperty(value = "")
+    private String orgId;
+
+    @ApiModelProperty(value = " 0成品 , 1中间体")
+    private  Integer type ;
+
+    @ApiModelProperty(value = " 0 是年 ,1是月")
+    private  Integer dateType ;
+
+    @ApiModelProperty(value = "车间")
+    private  String cheJianName ;
+
+    @ApiModelProperty(value = "检测项目")
+    private  String inspecItems ;
+
+    @ApiModelProperty(value = "物料名称")
+    private  String materialName ;
+
+    private String time;
+
+}

+ 104 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoAddParam.java

@@ -0,0 +1,104 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量分析报表添加参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class QualityFenxibaogaoAddParam {
+
+    /** 检品名称 */
+    @ApiModelProperty(value = "检品名称", position = 2)
+    private String materialName;
+
+    /** 规格 */
+    @ApiModelProperty(value = "规格", position = 3)
+    private String spec;
+
+    /** 取样日期 */
+    @ApiModelProperty(value = "取样日期", position = 4)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date sampDate;
+
+    /** 自编批号 */
+    @ApiModelProperty(value = "自编批号", position = 5)
+    private String selfBatchNum;
+
+    /** 数量 */
+    @ApiModelProperty(value = "数量", position = 6)
+    private String quantity;
+
+    /** 检验日期 */
+    @ApiModelProperty(value = "检验日期", position = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inspecDate;
+
+    /** 厂家批号 */
+    @ApiModelProperty(value = "厂家批号", position = 8)
+    private String manufBatchNum;
+
+    /** 报告日期 */
+    @ApiModelProperty(value = "报告日期", position = 9)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date reportDate;
+
+    /** 生产单位 */
+    @ApiModelProperty(value = "生产单位", position = 10)
+    private String productionUnit;
+
+    /** 检验编号 */
+    @ApiModelProperty(value = "检验编号", position = 11)
+    private String inspecNum;
+
+    /** 检验项目 */
+    @ApiModelProperty(value = "检验项目", position = 12)
+    private String inspecItems;
+
+    /** 检验标准 */
+    @ApiModelProperty(value = "检验标准", position = 13)
+    private String inspecStandards;
+
+    /** 检验结果 */
+    @ApiModelProperty(value = "检验结果", position = 14)
+    private String inspecResults;
+
+    /** ORG_ID */
+    @ApiModelProperty(value = "ORG_ID", position = 15)
+    private String orgId;
+
+
+    @ApiModelProperty(value = "车间", position = 15)
+    private String cheJianName;
+
+    @ApiModelProperty(value = "比旋度", position = 15)
+    private String specificOtation;
+
+    @ApiModelProperty(value = "0成品 1中间体", position = 15)
+    private Integer qualityType;
+
+}

+ 104 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoEditParam.java

@@ -0,0 +1,104 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量分析报表编辑参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class QualityFenxibaogaoEditParam {
+
+    /** ID */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /** 检品名称 */
+    @ApiModelProperty(value = "检品名称", position = 2)
+    private String materialName;
+
+    /** 规格 */
+    @ApiModelProperty(value = "规格", position = 3)
+    private String spec;
+
+    /** 取样日期 */
+    @ApiModelProperty(value = "取样日期", position = 4)
+    private Date sampDate;
+
+    /** 自编批号 */
+    @ApiModelProperty(value = "自编批号", position = 5)
+    private String selfBatchNum;
+
+    /** 数量 */
+    @ApiModelProperty(value = "数量", position = 6)
+    private String quantity;
+
+    /** 检验日期 */
+    @ApiModelProperty(value = "检验日期", position = 7)
+    private Date inspecDate;
+
+    /** 厂家批号 */
+    @ApiModelProperty(value = "厂家批号", position = 8)
+    private String manufBatchNum;
+
+    /** 报告日期 */
+    @ApiModelProperty(value = "报告日期", position = 9)
+    private Date reportDate;
+
+    /** 生产单位 */
+    @ApiModelProperty(value = "生产单位", position = 10)
+    private String productionUnit;
+
+    /** 检验编号 */
+    @ApiModelProperty(value = "检验编号", position = 11)
+    private String inspecNum;
+
+    /** 检验项目 */
+    @ApiModelProperty(value = "检验项目", position = 12)
+    private String inspecItems;
+
+    /** 检验标准 */
+    @ApiModelProperty(value = "检验标准", position = 13)
+    private String inspecStandards;
+
+    /** 检验结果 */
+    @ApiModelProperty(value = "检验结果", position = 14)
+    private String inspecResults;
+
+    /** ORG_ID */
+    @ApiModelProperty(value = "ORG_ID", position = 15)
+    private String orgId;
+
+    @ApiModelProperty(value = "车间", position = 15)
+    private String cheJianName;
+
+    @ApiModelProperty(value = "0成品 1中间体", position = 15)
+    private Integer qualityType;
+    @ApiModelProperty(value = "比旋度", position = 15)
+    private String specificOtation;
+
+}

+ 35 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 质量分析报表Id参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class QualityFenxibaogaoIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotBlank(message = "id不能为空")
+    private Integer id;
+}

+ 54 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityFenxibaogaoPageParam.java

@@ -0,0 +1,54 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量分析报表查询参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class QualityFenxibaogaoPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+    @ApiModelProperty(value = "")
+    private String orgId;
+
+}

+ 46 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentAddParam.java

@@ -0,0 +1,46 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量试剂使用情况添加参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:37
+ **/
+@Getter
+@Setter
+public class QualityReagentAddParam {
+
+    /** 试剂名称 */
+    @ApiModelProperty(value = "试剂名称", position = 2)
+    private String reagentName;
+
+    /** 试剂数量 */
+    @ApiModelProperty(value = "试剂数量", position = 3)
+    private String reagentNumber;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 5)
+    private String orgId;
+
+}

+ 51 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentEditParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量试剂使用情况编辑参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:37
+ **/
+@Getter
+@Setter
+public class QualityReagentEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    /** 试剂名称 */
+    @ApiModelProperty(value = "试剂名称", position = 2)
+    private String reagentName;
+
+    /** 试剂数量 */
+    @ApiModelProperty(value = "试剂数量", position = 3)
+    private String reagentNumber;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 5)
+    private String orgId;
+
+}

+ 35 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 质量试剂使用情况Id参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:37
+ **/
+@Getter
+@Setter
+public class QualityReagentIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotBlank(message = "id不能为空")
+    private Integer id;
+}

+ 51 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/QualityReagentPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 质量试剂使用情况查询参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:37
+ **/
+@Getter
+@Setter
+public class QualityReagentPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+}

+ 22 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/vo/ChengPinQuXianVo.java

@@ -0,0 +1,22 @@
+package vip.xiaonuo.quality.param.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ChengPinQuXianVo {
+
+    @ApiModelProperty(value = "")
+    private String orgId;
+
+    @ApiModelProperty(value = "标准值")
+    private  String  inspecStandards ;
+
+    @ApiModelProperty(value = "比旋度")
+    private  String  specificOtation ;
+
+    @ApiModelProperty(value = "日期")
+    private  String  ymonth ;
+
+
+}

+ 34 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/param/vo/ShiJiParam.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.param.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质量分析报表查询参数
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Getter
+@Setter
+public class ShiJiParam {
+
+    @ApiModelProperty(value = "")
+    private String orgId;
+
+
+
+}

+ 7 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/service/IQualityReagentService.java

@@ -1,8 +1,11 @@
 package vip.xiaonuo.quality.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import vip.xiaonuo.quality.entity.QualityReagent;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.quality.param.QualityManufacturerParam;
 import vip.xiaonuo.quality.param.QualityReagentParam;
+import vip.xiaonuo.quality.param.vo.ShiJiParam;
 
 import java.util.List;
 
@@ -17,4 +20,8 @@ import java.util.List;
 public interface IQualityReagentService extends IService<QualityReagent> {
 
     List<QualityReagent> getList(QualityReagentParam reagentParam);
+
+    Page<QualityReagent> listPage(QualityManufacturerParam manufacturerParam);
+
+    List<QualityReagent>  getShiJi(ShiJiParam shiJiParam);
 }

+ 84 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/service/QualityFenxibaogaoService.java

@@ -0,0 +1,84 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.param.*;
+import vip.xiaonuo.quality.param.vo.ChengPinQuXianVo;
+
+import java.util.List;
+
+/**
+ * 质量分析报表Service接口
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+public interface QualityFenxibaogaoService extends IService<QualityFenxibaogao> {
+
+    /**
+     * 获取质量分析报表分页
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    Page<QualityFenxibaogao> page(QualityFenxibaogaoPageParam qualityFenxibaogaoPageParam);
+
+    /**
+     * 添加质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    void add(QualityFenxibaogaoAddParam qualityFenxibaogaoAddParam);
+
+    /**
+     * 编辑质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    void edit(QualityFenxibaogao qualityFenxibaogao);
+
+    /**
+     * 删除质量分析报表
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+    void delete(QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList);
+
+    /**
+     * 获取质量分析报表详情
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     */
+
+
+    /**
+     * 获取质量分析报表详情
+     *
+     * @author 1
+     * @date  2025/02/26 16:25
+     **/
+    QualityFenxibaogao queryEntity(String id);
+
+    List<QualityFenxibaogao> getChengPin(ChengPingZhiParam chengPingZhiParam);
+
+    List<ChengPinQuXianVo> getChengPinQuXian(ChengPingZhiParam chengPingZhiParam);
+
+    List<QualityFenxibaogao> getJianCeXiangMu(ChengPingZhiParam chengPingZhiParam);
+}

+ 141 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/service/impl/QualityFenxibaogaoServiceImpl.java

@@ -0,0 +1,141 @@
+/*
+ * Copyright [2022] [https://www.baiduc.com]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
+ */
+package vip.xiaonuo.quality.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
+import vip.xiaonuo.purchase.param.PurchaseAllParam;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.mapper.QualityFenxibaogaoMapper;
+import vip.xiaonuo.quality.param.*;
+import vip.xiaonuo.quality.param.vo.ChengPinQuXianVo;
+import vip.xiaonuo.quality.service.QualityFenxibaogaoService;
+
+import java.util.List;
+
+/**
+ * 质量分析报表Service接口实现类
+ *
+ * @author 1
+ * @date  2025/02/26 16:25
+ **/
+@Service
+public class QualityFenxibaogaoServiceImpl extends ServiceImpl<QualityFenxibaogaoMapper, QualityFenxibaogao> implements QualityFenxibaogaoService {
+
+    @Autowired
+    private QualityFenxibaogaoMapper qualityFenxibaogaoMapper;
+
+    @Override
+    public Page<QualityFenxibaogao> page(QualityFenxibaogaoPageParam qualityFenxibaogaoPageParam) {
+        QueryWrapper<QualityFenxibaogao> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(qualityFenxibaogaoPageParam.getSortField(), qualityFenxibaogaoPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(qualityFenxibaogaoPageParam.getSortOrder());
+            queryWrapper.orderBy(true, qualityFenxibaogaoPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(qualityFenxibaogaoPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(QualityFenxibaogao::getId);
+        }
+        String orgId = qualityFenxibaogaoPageParam.getOrgId();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
+
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(QualityFenxibaogaoAddParam qualityFenxibaogaoAddParam) {
+        String orgId = qualityFenxibaogaoAddParam.getOrgId();
+        if(StringUtils.isBlank(orgId)) {
+            throw new CommonException("请选择需要添加的公司");
+        }
+        QualityFenxibaogao qualityFenxibaogao = BeanUtil.toBean(qualityFenxibaogaoAddParam, QualityFenxibaogao.class);
+        this.save(qualityFenxibaogao);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(QualityFenxibaogao qualityFenxibaogao) {
+        this.updateById(qualityFenxibaogao);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
+        // 执行删除
+        this.removeById(qualityFenxibaogaoIdParamList.getId());
+    }
+
+    @Override
+    public QualityFenxibaogao queryEntity(String id) {
+        QualityFenxibaogao qualityFenxibaogao = this.getById(id);
+        if(ObjectUtil.isEmpty(qualityFenxibaogao)) {
+            throw new CommonException("质量分析报表不存在,id值为:{}", id);
+        }
+        return qualityFenxibaogao;
+    }
+
+    @Override
+    public List<QualityFenxibaogao> getChengPin(ChengPingZhiParam chengPingZhiParam) {
+        QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
+        wrapper.select("material_name , quality_type");
+        wrapper.groupBy("material_name");
+        wrapper.eq(StringUtils.isNotBlank(chengPingZhiParam.getOrgId()),"org_id",chengPingZhiParam.getOrgId());
+        return this.list(wrapper);
+    }
+
+    @Override
+    public List<ChengPinQuXianVo> getChengPinQuXian(ChengPingZhiParam chengPingZhiParam) {
+
+        String orgId = chengPingZhiParam.getOrgId();
+        Integer type = chengPingZhiParam.getDateType();
+
+        QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
+
+        wrapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId)
+                .eq(StringUtils.isNotBlank(chengPingZhiParam.getCheJianName()),"che_jian_name",chengPingZhiParam.getCheJianName())
+                .eq(StringUtils.isNotBlank(chengPingZhiParam.getInspecItems()),"inspec_items",chengPingZhiParam.getInspecItems())
+                .eq(StringUtils.isNotBlank(chengPingZhiParam.getMaterialName()),"material_name",chengPingZhiParam.getMaterialName())
+                .eq("quality_type",chengPingZhiParam.getType())
+                .orderByAsc("ymonth").groupBy("ymonth");
+        List<ChengPinQuXianVo> busAllParams;
+        if (ObjectUtil.isEmpty(type) || 0 ==  type){
+            busAllParams= qualityFenxibaogaoMapper.getChengPinQuXianYear(wrapper);
+        }else {
+            busAllParams = qualityFenxibaogaoMapper.getChengPinQuXianMonth(wrapper);
+
+        }
+        return busAllParams;
+    }
+
+    @Override
+    public List<QualityFenxibaogao> getJianCeXiangMu(ChengPingZhiParam chengPingZhiParam) {
+        QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
+        wrapper.select("inspec_items, quality_type");
+        wrapper.groupBy("inspec_items");
+        wrapper.eq(StringUtils.isNotBlank(chengPingZhiParam.getOrgId()),"org_id",chengPingZhiParam.getOrgId());
+        return this.list(wrapper);
+    }
+}

+ 25 - 0
huimv-farm/src/main/java/vip/xiaonuo/quality/service/impl/QualityReagentServiceImpl.java

@@ -3,10 +3,15 @@ package vip.xiaonuo.quality.service.impl;
 import cn.hutool.core.date.DateUtil;
 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.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.entity.QualityManufacturer;
 import vip.xiaonuo.quality.entity.QualityReagent;
 import vip.xiaonuo.quality.mapper.QualityReagentMapper;
+import vip.xiaonuo.quality.param.QualityManufacturerParam;
 import vip.xiaonuo.quality.param.QualityReagentParam;
+import vip.xiaonuo.quality.param.vo.ShiJiParam;
 import vip.xiaonuo.quality.service.IQualityReagentService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -45,4 +50,24 @@ public class QualityReagentServiceImpl extends ServiceImpl<QualityReagentMapper,
         return reagentMapper.selectList(queryWrapper);
     }
 
+    @Override
+    public Page<QualityReagent> listPage(QualityManufacturerParam manufacturerParam) {
+        String orgId = manufacturerParam.getOrgId();
+        Page<QualityReagent> page = new Page<>(manufacturerParam.getPageNum(), manufacturerParam.getPageSize());
+        QueryWrapper<QualityReagent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.orderByDesc("create_time");
+        return reagentMapper.selectPage(page, queryWrapper);
+    }
+
+    @Override
+    public List<QualityReagent> getShiJi(ShiJiParam shiJiParam) {
+        QueryWrapper<QualityReagent> wrapper = new QueryWrapper<>();
+        wrapper.select("reagent_name ");
+        wrapper.eq(StringUtils.isNotBlank(shiJiParam.getOrgId()),"org_id",shiJiParam.getOrgId()).groupBy("reagent_name");
+        List<QualityReagent> list = this.list(wrapper);
+        return list;
+    }
+
+
 }

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

@@ -10,8 +10,9 @@
         IFNULL(sum(case when create_time between '${lastMonth}-01 00:00:00' and '${lastMonth}-31 23:59:59' then purchase_money else 0 end),'0') as 'lastMonthMoney',
         IFNULL(sum(case when create_time between '${lastYear}-01-01 00:00:00' and '${lastYear}-12-31 23:59:59' then purchase_money else 0 end),'0') as 'lastYearMoney'
         from purchase_order
+        WHERE  material IS NOT NULL
         <if test="orgId!=null and orgId!=''">
-            where org_id=#{orgId}
+            and org_id=#{orgId}
         </if>
         group by material
     </select>

+ 20 - 0
huimv-farm/src/main/resources/mapper/QualityFenxibaogaoMapper.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.quality.mapper.QualityFenxibaogaoMapper">
+
+    <select id="getChengPinQuXianMonth" resultType="vip.xiaonuo.quality.param.vo.ChengPinQuXianVo">
+         SELECT ROUND(IFNULL(AVG(inspec_standards), 0), 2)  inspec_standards ,
+   ROUND(IFNULL(AVG(specific_otation), 0), 2)  specific_otation ,
+    DATE_FORMAT(report_date, '%Y-%m') AS ymonth
+        FROM `quality_fenxibaogao`
+         ${ew.customSqlSegment}
+    </select>
+    <select id="getChengPinQuXianYear" resultType="vip.xiaonuo.quality.param.vo.ChengPinQuXianVo">
+         SELECT ROUND(IFNULL(AVG(inspec_standards), 0), 2)  inspec_standards ,
+   ROUND(IFNULL(AVG(specific_otation), 0), 2)  specific_otation ,
+    DATE_FORMAT(report_date, '%Y') AS ymonth
+        FROM `quality_fenxibaogao`
+         ${ew.customSqlSegment}
+
+    </select>
+</mapper>

+ 4 - 0
snowy-plugin-api/snowy-plugin-gen-api/target/maven-archiver/pom.properties

@@ -0,0 +1,4 @@
+#Created by Apache Maven 3.6.3
+groupId=vip.xiaonuo
+artifactId=snowy-plugin-gen-api
+version=2.0.0

+ 0 - 0
snowy-plugin-api/snowy-plugin-gen-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst


+ 1 - 0
snowy-plugin-api/snowy-plugin-gen-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1 @@
+G:\idea\huimv-2022\snowy\snowy-plugin-api\snowy-plugin-gen-api\src\main\java\vip\xiaonuo\gen\package-info.java