523096025 5 hari lalu
induk
melakukan
e8928c36bf
94 mengubah file dengan 2301 tambahan dan 262 penghapusan
  1. 1 0
      get-data/src/main/java/com/huimv/getdata/entity/xiaoshou/YvQiHeTongMingXi.java
  2. 1 1
      get-data/src/main/resources/com/huimv/getdata/mapper/ErpVoucherMapper.xml
  3. 5 1
      get-data/src/main/resources/com/huimv/getdata/mapper/ErpXiaoShouMapper.xml
  4. 5 0
      huimv-farm/src/main/java/vip/xiaonuo/Application.java
  5. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/core/handler/GlobalExceptionUtil.java
  6. 66 0
      huimv-farm/src/main/java/vip/xiaonuo/details/config/DetailsConfigure.java
  7. 462 0
      huimv-farm/src/main/java/vip/xiaonuo/details/controller/CaiGouDetailsController.java
  8. 870 0
      huimv-farm/src/main/java/vip/xiaonuo/details/controller/MoneyDetailsController.java
  9. 205 0
      huimv-farm/src/main/java/vip/xiaonuo/details/controller/ZhanBiDengController.java
  10. 35 0
      huimv-farm/src/main/java/vip/xiaonuo/details/vo/DetailVo.java
  11. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/erp/entity/xiaoshou/YvQiHeTongMingXi.java
  12. 8 6
      huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpXiaoShouServiceImpl.java
  13. 3 3
      huimv-farm/src/main/java/vip/xiaonuo/importData/entity/BankData.java
  14. 5 4
      huimv-farm/src/main/java/vip/xiaonuo/importData/service/impl/ImportDataImpl.java
  15. 11 0
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyBusiness.java
  16. 4 0
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyCost.java
  17. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyWarning.java
  18. 3 2
      huimv-farm/src/main/java/vip/xiaonuo/money/mapper/MoneyBusinessMapper.java
  19. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/money/param/MoneyBorrowParam.java
  20. 5 5
      huimv-farm/src/main/java/vip/xiaonuo/money/param/MoneyWriteOverdueAddParam.java
  21. 19 17
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBorrowWarningServiceImpl.java
  22. 5 3
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBusinessServiceImpl.java
  23. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyIncomeServiceImpl.java
  24. 0 18
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java
  25. 1 2
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProducePriceServiceImpl.java
  26. 0 2
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProduceServiceImpl.java
  27. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyWriteOverdueServiceImpl.java
  28. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionWorkstopPlanController.java
  29. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionCheck.java
  30. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionWorkstopPlan.java
  31. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionYield.java
  32. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/vo/ProductionLocationVo.java
  33. 11 3
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionTargetServiceImpl.java
  34. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWorkstopPlanServiceImpl.java
  35. 17 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWriteEnergyServiceImpl.java
  36. 5 25
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionYieldServiceImpl.java
  37. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/controller/PurchaseOrderController.java
  38. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchaseContract.java
  39. 4 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchaseOrder.java
  40. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchasePay.java
  41. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchasePrice.java
  42. 8 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/vo/PurchaseMaterialVo.java
  43. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/purchase/mapper/PurchaseOrderMapper.java
  44. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/purchase/param/PurchasePayParam.java
  45. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/IPurchaseOrderService.java
  46. 21 12
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseOrderServiceImpl.java
  47. 6 0
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchasePayServiceImpl.java
  48. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/risk/entity/RiskContractWarning.java
  49. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskSupplierServiceImpl.java
  50. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleCost.java
  51. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleCustomer.java
  52. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleDeliver.java
  53. 17 6
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleDetail.java
  54. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleInvoice.java
  55. 5 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleOrder.java
  56. 4 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleOverdue.java
  57. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SalePrice.java
  58. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleProduce.java
  59. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleReceive.java
  60. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/vo/SaleInvoiceVo.java
  61. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/entity/vo/SaleWanChengLvVo.java
  62. 6 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SaleDetailMapper.java
  63. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/param/SaleCustomerParam.java
  64. 4 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISaleOrderService.java
  65. 3 7
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleCustomerServiceImpl.java
  66. 0 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleDetailServiceImpl.java
  67. 14 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOrderServiceImpl.java
  68. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOverdueServiceImpl.java
  69. 4 42
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleProduceServiceImpl.java
  70. 1 3
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleReceiveServiceImpl.java
  71. 1 2
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleSalesmanServiceImpl.java
  72. 7 7
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleTargetServiceImpl.java
  73. 13 0
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiChangDto.java
  74. 15 0
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiChangTables.java
  75. 6 0
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiZhiTableDto.java
  76. 59 1
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/tongHuaShunController.java
  77. 184 0
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/tongShiChangFenXiController.java
  78. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/tonghua/vo/TongHuaParam.java
  79. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/entity/WarehouseStockSecond.java
  80. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseMaterialStockServiceImpl.java
  81. 50 30
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockServiceImpl.java
  82. 9 1
      huimv-farm/src/main/resources/application-test1.properties
  83. 2 2
      huimv-farm/src/main/resources/mapper/MoneyBorrowWarningMapper.xml
  84. 7 2
      huimv-farm/src/main/resources/mapper/PurchaseOrderMapper.xml
  85. 1 2
      huimv-farm/src/main/resources/mapper/RiskContractWarningMapper.xml
  86. 17 0
      huimv-farm/src/main/resources/mapper/SaleDetailMapper.xml
  87. 1 1
      huimv-farm/src/test/java/vip/xiaonuo/CaiWuTest.java
  88. 28 0
      huimv-farm/src/test/java/vip/xiaonuo/TongHuaTest.java
  89. 5 5
      huimv-farm/src/test/java/vip/xiaonuo/XiaoShouTest.java
  90. 2 1
      snowy-common/src/main/java/vip/xiaonuo/common/pojo/CommonResult.java
  91. 1 0
      snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java
  92. 1 12
      snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/config/provider/DevConfigApiProvider.java
  93. 1 1
      snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/controller/SysOrgController.java
  94. 1 0
      snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/entity/SysOrg.java

+ 1 - 0
get-data/src/main/java/com/huimv/getdata/entity/xiaoshou/YvQiHeTongMingXi.java

@@ -26,4 +26,5 @@ public class YvQiHeTongMingXi {
     //出库日期
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date chuKuDate;
+    private String wuliao;
 }

+ 1 - 1
get-data/src/main/resources/com/huimv/getdata/mapper/ErpVoucherMapper.xml

@@ -25,7 +25,7 @@ inner join T_GL_VOUCHERENTRY D on D.FVOUCHERID=M.FVOUCHERID
 inner join T_BD_ACCOUNT KM ON KM.FACCTID=D.FACCOUNTID
  where
 	KM.FNumber in  ('6401.01.01', '6401.01.02','6401.02.01','6401.02.02','6401.03','6401.02.03','6401.05.01','6401.05.02','6401.05.03'
-        ,'6402.01','6402.02','6402.04','6402.09')
+        ,'6402.01','6402.02','6402.04','6402.09') and fcredit != 0
         <if test="date !=null">
         and  m.FDATE >= #{date}
     </if>

+ 5 - 1
get-data/src/main/resources/com/huimv/getdata/mapper/ErpXiaoShouMapper.xml

@@ -79,7 +79,8 @@ INNER JOIN T_BD_ACCOUNT C ON  C.FACCTID = B.FACCOUNTID
     <select id="getYvQiHeTongMingXi" resultType="com.huimv.getdata.entity.xiaoshou.YvQiHeTongMingXi"
             parameterType="java.util.Date">
 
-        SELECT    A.FCREATEDATE ,A.FBILLNO    , F.FAllAmount_LC  FALLAMOUNTLC , A.FSALEDEPTID ,D.FNAME keHuName,C.FNAME   ,E.FQTY,G.FDATE chuKuDate
+        SELECT    A.FCREATEDATE ,A.FBILLNO   ,L.FNAME wuliao , F.FAllAmount_LC  FALLAMOUNTLC , A.FSALEDEPTID ,D.FNAME keHuName,C.FNAME   ,E.FQTY,G.FDATE chuKuDate
+        ,A.FSALEORGID  FSALEORGID
         FROM T_CRM_CONTRACT A
         inner join T_CRM_CONTRACTENTRY E on a.fid = E.fid
         inner  JOIN T_CRM_CONTRACTENTRY_F F  ON F.fentryid  = e.fentryid
@@ -88,6 +89,9 @@ INNER JOIN T_BD_ACCOUNT C ON  C.FACCTID = B.FACCOUNTID
         INNER JOIN T_BAS_BILLTYPE_L C ON A.FBILLTYPEID = C.FBILLTYPEID
         INNER JOIN T_BD_CUSTOMER_L D ON D.FCUSTID=A.FCUSTID
 
+        LEFT JOIN T_SAL_OUTSTOCK G  ON G.FBILLNO  = A.FBILLNO
+        INNER JOIN T_BD_MATERIAL_L L ON L.FMATERIALID  = E.FMATERIALID
+
         <if test="date !=null">
             where A.FDATE >= #{date}
         </if>

+ 5 - 0
huimv-farm/src/main/java/vip/xiaonuo/Application.java

@@ -33,6 +33,11 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
 @SpringBootApplication
 public class Application {
 
+
+
+
+
+
     /* 解决druid 日志报错:discard long time none received connection:xxx */
     static {
         System.setProperty("druid.mysql.usePingMethod","false");

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/core/handler/GlobalExceptionUtil.java

@@ -140,7 +140,8 @@ public class GlobalExceptionUtil {
             // 未知异常打印详情
             log.error(">>> 服务器未知异常,请求地址:{},具体信息:", CommonServletUtil.getRequest().getRequestURL(), e);
             // 未知异常返回服务器异常
-            commonResult = CommonResult.error();
+//            commonResult = CommonResult.error();
+            return new CommonResult<>(500, "账号信息过期,请刷新后重试", null);
         }
         return commonResult;
     }

+ 66 - 0
huimv-farm/src/main/java/vip/xiaonuo/details/config/DetailsConfigure.java

@@ -0,0 +1,66 @@
+/*
+ * 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.details.config;
+
+
+import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import vip.xiaonuo.common.pojo.CommonResult;
+
+import javax.annotation.Resource;
+
+/**
+ * SaToken鉴权配置
+ *
+ * @HRor xuyuxiang
+ * @date 2021/10/9 14:24
+ **/
+@Configuration
+public class DetailsConfigure implements WebMvcConfigurer {
+
+    @Resource
+    private OpenApiExtensionResolver openApiExtensionResolver;
+
+    
+
+
+    @Bean(value = "MoneyDetailsApi")
+    public Docket hrDocApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(new ApiInfoBuilder()
+                        .title("详情模块")
+                        .description("详情模块")
+                        .termsOfServiceUrl("https://www.baiduc.com")
+                        .contact(new Contact("SNOWY_TEAM","https://www.baiduc.com", "xuyuxiang29@foxmail.com"))
+                        .version("2.0.0")
+                        .build())
+                .globalResponseMessage(RequestMethod.GET, CommonResult.responseList())
+                .globalResponseMessage(RequestMethod.POST, CommonResult.responseList())
+                .groupName("详情模块")
+                .select()
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                .apis(RequestHandlerSelectors.basePackage("vip.xiaonuo.details"))
+                .paths(PathSelectors.any())
+                .build().extensions(openApiExtensionResolver.buildExtensions("详情模块"));
+    }
+}

+ 462 - 0
huimv-farm/src/main/java/vip/xiaonuo/details/controller/CaiGouDetailsController.java

@@ -0,0 +1,462 @@
+package vip.xiaonuo.details.controller;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.validation.annotation.Validated;
+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.pojo.CommonResult;
+import vip.xiaonuo.details.vo.DetailVo;
+import vip.xiaonuo.erp.mapper.ErpBdRawMaterialMapper;
+import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.HrBaseEmployeeInfo;
+import vip.xiaonuo.hr.modular.baseemployeeinfo.service.HrBaseEmployeeInfoService;
+import vip.xiaonuo.hr.modular.write.entity.HrPeopleWrite;
+import vip.xiaonuo.hr.modular.write.service.IHrPeopleWriteService;
+import vip.xiaonuo.money.entity.*;
+import vip.xiaonuo.money.param.MoneyBorrowDetailParam;
+import vip.xiaonuo.money.service.*;
+import vip.xiaonuo.production.entity.*;
+import vip.xiaonuo.production.mapper.ProductionWriteRateMapper;
+import vip.xiaonuo.production.mapper.ProductionYieldMapper;
+import vip.xiaonuo.production.service.*;
+import vip.xiaonuo.purchase.entity.PurchaseContract;
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
+import vip.xiaonuo.purchase.entity.PurchasePay;
+import vip.xiaonuo.purchase.entity.PurchasePrice;
+import vip.xiaonuo.purchase.entity.vo.PurchaseMaterialVo;
+import vip.xiaonuo.purchase.mapper.PurchaseOrderMapper;
+import vip.xiaonuo.purchase.mapper.PurchasePayMapper;
+import vip.xiaonuo.purchase.mapper.PurchasePriceMapper;
+import vip.xiaonuo.purchase.service.IPurchaseContractService;
+import vip.xiaonuo.purchase.service.IPurchaseOrderService;
+import vip.xiaonuo.purchase.service.IPurchasePayService;
+import vip.xiaonuo.purchase.service.IPurchasePriceService;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.entity.QualityReagentOutStock;
+import vip.xiaonuo.quality.mapper.QualityReagentOutStockMapper;
+import vip.xiaonuo.quality.service.IQualityReagentOutStockService;
+import vip.xiaonuo.quality.service.QualityFenxibaogaoService;
+import vip.xiaonuo.risk.entity.RiskContract;
+import vip.xiaonuo.risk.entity.RiskContractWarning;
+import vip.xiaonuo.risk.mapper.RiskContractWarningMapper;
+import vip.xiaonuo.risk.service.IRiskContractService;
+import vip.xiaonuo.risk.service.IRiskContractWarningService;
+import vip.xiaonuo.sale.entity.*;
+import vip.xiaonuo.sale.service.*;
+import vip.xiaonuo.sys.modular.org.entity.SysOrg;
+import vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper;
+import vip.xiaonuo.warehouse.entity.WarehouseStockDetail;
+import vip.xiaonuo.warehouse.entity.WarehouseStockSecond;
+import vip.xiaonuo.warehouse.mapper.WarehouseStockSecondMapper;
+import vip.xiaonuo.warehouse.service.IWarehouseStockDetailService;
+import vip.xiaonuo.warehouse.service.IWarehouseStockSecondService;
+
+/**
+ * <p>
+ * 财务营业情况 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-11-19
+ */
+@Api(tags = "采购之后详情控制器")
+@ApiSupport(author = "wang", order = 1)
+@RestController
+@Validated
+public class CaiGouDetailsController {
+
+    @Autowired
+    private  IPurchaseOrderService purchaseOrderService;
+    @Autowired
+    private IPurchasePriceService purchasePriceService;
+    @Autowired
+    private  SysOrgMapper sysOrgMapper;
+    private ErpBdRawMaterialMapper bdRawMaterialMapper;
+    @Autowired
+    private IPurchasePayService purchasePayService;
+
+    @Autowired
+    private IWarehouseStockSecondService stockSecondService;
+    @Autowired
+    private IProductionWriteRateService productionWriteRateService;
+    @Autowired
+    private IProductionYieldService productionYieldService;
+    @Autowired
+    private IProductionConsumeService consumeService;
+    @Autowired
+    private IQualityReagentOutStockService reagentOutStockService;
+    @Autowired
+    private IRiskContractWarningService riskContractWarningMapper;
+    @Autowired
+    private IRiskContractService riskContractService;
+    @Autowired
+    private IPurchaseContractService purchaseContractService;
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("采购合同")
+    @PostMapping("/details/saleContract")
+    public CommonResult<Page<PurchaseContract> > saleContract(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseContract> wapper = getWapper(dsBusParam, new QueryWrapper<PurchaseContract>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("contract_order",dsBusParam.getSearchWords())
+                    .or().like("order_number",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchaseContract> page = purchaseContractService.page(new Page<PurchaseContract>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+
+        for (PurchaseContract record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("采购订单")
+    @PostMapping("/details/saleOrder2")
+    public CommonResult<Page<PurchaseOrder> > saleOrder(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseOrder> wapper = getWapper(dsBusParam, new QueryWrapper<PurchaseOrder>());
+        wapper.isNotNull("order_number");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+                    .or().like("order_number",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchaseOrder> page = purchaseOrderService.page(new Page<PurchaseOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+
+        for (PurchaseOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("收料")
+    @PostMapping("/details/shouLiao")
+    public CommonResult<Page<PurchaseOrder> > shouLiao(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseOrder> wapper = getWapper(dsBusParam, new QueryWrapper<PurchaseOrder>());
+        wapper.isNotNull("ht_no");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+                    .or().like("ht_no",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchaseOrder> page = purchaseOrderService.page(new Page<PurchaseOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (PurchaseOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("入库")
+    @PostMapping("/details/ruKu")
+    public CommonResult<Page<PurchaseOrder> > ruKu(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseOrder> wapper = getWapper(dsBusParam, new QueryWrapper<PurchaseOrder>());
+        wapper.isNotNull("rk_no");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+                    .or().like("rk_no",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchaseOrder> page = purchaseOrderService.page(new Page<PurchaseOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+
+        for (PurchaseOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("发票")
+    @PostMapping("/details/faPiao")
+    public CommonResult<Page<PurchaseOrder> > faPiao(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseOrder> wapper = getWapper(dsBusParam, new QueryWrapper<PurchaseOrder>());
+        wapper.isNotNull("invoice_price");
+        Page<PurchaseOrder> page = purchaseOrderService.page(new Page<PurchaseOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (PurchaseOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("单品价格")
+    @PostMapping("/details/danPinJiaGe")
+    public CommonResult<Page<PurchasePrice> > danPinJiaGe(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchasePrice> wapper = getWapper(dsBusParam, new QueryWrapper<PurchasePrice>());
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchasePrice> page = purchasePriceService.page(new Page<PurchasePrice>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (PurchasePrice record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @Autowired
+    private PurchaseOrderMapper purchaseOrderMapper;
+
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("供应商占比")
+    @PostMapping("/details/gongYingShang")
+    public CommonResult<Page<PurchaseMaterialVo> > gongYingShang(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<PurchaseMaterialVo> wapper = new QueryWrapper<>();
+
+        wapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        wapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"create_time",dsBusParam.getStartDate());
+        wapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"create_time",dsBusParam.getEndDate());
+
+
+        wapper.isNotNull("supplier");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+                    .or().like("supplier",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchaseMaterialVo> page = purchaseOrderMapper.getSupplier2(new Page<PurchaseMaterialVo>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (PurchaseMaterialVo record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("羊毛脂,鱼油供应商")
+    @PostMapping("/details/materGongYing")
+    public CommonResult<Page<PurchasePay> > materGongYing(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<PurchasePay> wapper = getWapper(dsBusParam, new QueryWrapper<PurchasePay>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("payable_object",dsBusParam.getSearchWords())
+                    .or().like("purchase_material",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchasePay> page = purchasePayService.page(new Page<PurchasePay>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (PurchasePay record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("库存指标")
+    @PostMapping("/details/kuChunZhibiao")
+    public CommonResult<Page<WarehouseStockSecond> > kuChunZhibiao(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<WarehouseStockSecond> wapper = getWapper(dsBusParam, new QueryWrapper<WarehouseStockSecond>());
+        wapper.isNotNull("material_type");
+        Page<WarehouseStockSecond> page = stockSecondService.page(new Page<WarehouseStockSecond>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (WarehouseStockSecond record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("收率")
+    @PostMapping("/details/shouLv")
+    public CommonResult<Page<ProductionWriteRate> > shouLv(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<ProductionWriteRate> wapper = getWapper(dsBusParam, new QueryWrapper<ProductionWriteRate>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("production_name",dsBusParam.getSearchWords())
+                    .or().like("location_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<ProductionWriteRate> page =  productionWriteRateService.page(new Page<ProductionWriteRate>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("实际产量")
+    @PostMapping("/details/shiJiChanLiang")
+    public CommonResult<Page<ProductionYield> > shiJiChanLiang(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<ProductionYield> wapper = getWapper(dsBusParam, new QueryWrapper<ProductionYield>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("company_name",dsBusParam.getSearchWords())
+                    .or().like("location_name",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<ProductionYield> page =  productionYieldService.page(new Page<ProductionYield>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 7)
+    @ApiOperation("单耗")
+    @PostMapping("/details/danHao")
+    public CommonResult<Page<ProductionConsume> > danHao(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<ProductionConsume> wapper = getWapper(dsBusParam, new QueryWrapper<ProductionConsume>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+                    .or().like("location_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<ProductionConsume> page =  consumeService.page(new Page<ProductionConsume>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        for (ProductionConsume record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 7)
+    @ApiOperation("试剂使用情况")
+    @PostMapping("/details/shiJiShiYong")
+    public CommonResult<Page<QualityReagentOutStock> > shiJiShiYong(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<QualityReagentOutStock> wapper = getWapper(dsBusParam, new QueryWrapper<QualityReagentOutStock>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("reagent",dsBusParam.getSearchWords())
+
+            );
+        }
+        Page<QualityReagentOutStock> page =  reagentOutStockService.page(new Page<QualityReagentOutStock>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        for (QualityReagentOutStock record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("供应商交货准确率")
+    @PostMapping("/details/gongYingShangJiaoHuo")
+    public CommonResult<Page<RiskContractWarning> > gongYingShangJiaoHuo(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<RiskContractWarning> wapper = getWapper(dsBusParam, new QueryWrapper<RiskContractWarning>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("contract_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("kehu",dsBusParam.getSearchWords())
+            );
+        }
+        Page<RiskContractWarning> page =  riskContractWarningMapper.page(new Page<RiskContractWarning>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        for (RiskContractWarning record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 9)
+    @ApiOperation("销售回款")
+    @PostMapping("/details/xiaoShouHuiKuan")
+    public CommonResult<Page<RiskContract> > xiaoShouHuiKuan(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<RiskContract> wapper = getWapper(dsBusParam, new QueryWrapper<RiskContract>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("contract_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("kehu",dsBusParam.getSearchWords())
+            );
+        }
+        Page<RiskContract> page =  riskContractService.page(new Page<RiskContract>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        for (RiskContract record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("合同逾期")
+    @PostMapping("/details/hetongYvQi")
+    public CommonResult<Page<RiskContract> > hetongYvQi(@RequestBody DetailVo dsBusParam) {
+
+
+        QueryWrapper<RiskContract> wapper = getWapper(dsBusParam, new QueryWrapper<RiskContract>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("contract_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("kehu",dsBusParam.getSearchWords())
+            );
+        }
+        Page<RiskContract> page =  riskContractService.page(new Page<RiskContract>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+
+        for (RiskContract record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    private <T>  QueryWrapper<T> getWapper(DetailVo dsBusParam,QueryWrapper<T> queryWrapper) {
+
+        queryWrapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        queryWrapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"create_time",dsBusParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"create_time",dsBusParam.getEndDate());
+        queryWrapper.orderByDesc("create_time");
+
+        if (StringUtils.isNotBlank(dsBusParam.getTypes())){
+            for (String s : dsBusParam.getTypes().split(",")) {
+                if ("1".equals(s)) {
+                    queryWrapper.ne("business_income", 0);
+                } else if ("2".equals(s)) {
+                    queryWrapper.ne("profit", 0);
+                } else if ("3".equals(s)) {
+                    queryWrapper.ne("taxes", 0);
+                } else if ("4".equals(s)) {
+                    queryWrapper.ne("balance", 0);
+                } else if ("5".equals(s)) {
+                    queryWrapper.ne("business_cost", 0);
+                }
+            }
+
+        }
+
+        return queryWrapper;
+    }
+
+
+}

+ 870 - 0
huimv-farm/src/main/java/vip/xiaonuo/details/controller/MoneyDetailsController.java

@@ -0,0 +1,870 @@
+package vip.xiaonuo.details.controller;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+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.ss.formula.functions.T;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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.exception.CommonException;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.details.vo.DetailVo;
+import vip.xiaonuo.hr.modular.baseemployeeinfo.entity.HrBaseEmployeeInfo;
+import vip.xiaonuo.hr.modular.baseemployeeinfo.service.HrBaseEmployeeInfoService;
+import vip.xiaonuo.hr.modular.write.entity.HrPeopleWrite;
+import vip.xiaonuo.hr.modular.write.service.IHrPeopleWriteService;
+import vip.xiaonuo.money.entity.*;
+import vip.xiaonuo.money.param.*;
+import vip.xiaonuo.money.service.*;
+import vip.xiaonuo.production.entity.ProductionWorkstopPlan;
+import vip.xiaonuo.production.entity.ProductionWritePlan;
+import vip.xiaonuo.production.service.IProductionWorkstopPlanService;
+import vip.xiaonuo.production.service.IProductionWriteEnergyService;
+import vip.xiaonuo.production.service.IProductionWritePlanService;
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
+import vip.xiaonuo.purchase.entity.PurchasePrice;
+import vip.xiaonuo.purchase.service.IPurchaseOrderService;
+import vip.xiaonuo.purchase.service.IPurchasePriceService;
+import vip.xiaonuo.quality.entity.QualityFenxibaogao;
+import vip.xiaonuo.quality.service.IQualityWriteService;
+import vip.xiaonuo.quality.service.QualityFenxibaogaoService;
+import vip.xiaonuo.sale.entity.*;
+import vip.xiaonuo.sale.mapper.SaleCustomerMapper;
+import vip.xiaonuo.sale.mapper.SaleOverdueMapper;
+import vip.xiaonuo.sale.mapper.SaleProduceMapper;
+import vip.xiaonuo.sale.mapper.SaleReceiveMapper;
+import vip.xiaonuo.sale.service.*;
+import vip.xiaonuo.sys.modular.org.entity.SysOrg;
+import vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper;
+import vip.xiaonuo.warehouse.entity.WarehouseMaterialStock;
+import vip.xiaonuo.warehouse.entity.WarehouseStockDetail;
+import vip.xiaonuo.warehouse.service.IWarehouseMaterialStockService;
+import vip.xiaonuo.warehouse.service.IWarehouseStockDetailService;
+import vip.xiaonuo.write.entity.WriteProduct;
+import vip.xiaonuo.write.service.IWriteProductService;
+
+import javax.annotation.Resource;
+import java.time.temporal.ValueRange;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 财务营业情况 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-11-19
+ */
+@Api(tags = "详情控制器")
+@ApiSupport(author = "wang", order = 1)
+@RestController
+@Validated
+public class MoneyDetailsController {
+    @Autowired
+    private IMoneyBusinessService businessService;
+
+    @Autowired
+    private IMoneyBorrowWarningService borrowWarningService;
+    @Autowired
+    private IMoneyCostService moneyCostService;
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
+    @Autowired
+    private ISaleVisitService saleVisitService;
+    @Autowired
+    private ISalePlanService salePlanService;
+    @Autowired
+    private ISaleDetailService saleDetailService;
+    @Autowired
+    private ISaleOrderService saleOrderService;
+    @Autowired
+    private ISaleDeliverService saleDeliverService;
+    @Autowired
+    private ISaleCustomerService saleCustomerService;
+    @Autowired
+    private IMoneyProduceService moneyProduceService;
+    @Autowired
+    private IPurchaseOrderService purchaseOrderService;
+    @Autowired
+    private IWarehouseStockDetailService warehouseStockDetailService;
+    @Autowired
+    private IPurchasePriceService purchasePriceService;
+    @Autowired
+    private IProductionWorkstopPlanService planService;
+    @Autowired
+    private IProductionWritePlanService writePlanService;
+
+    @Autowired
+    private IProductionWriteEnergyService energyService;
+    @Autowired
+    private QualityFenxibaogaoService qualityFenxibaogaoService;
+    @Autowired
+    private IMoneyWriteOverdueService writeOverdueService;
+
+    @Autowired
+    private IMoneyProduce0422Service produce0422Service;
+    @Autowired
+    private IWriteProductService writeProductService;
+    @Autowired
+    private IMoneyIncomeService incomeService;
+    @Autowired
+    private ISalePriceService priceService;
+    @Autowired
+    private ISaleCostService saleCostService;
+    @Autowired
+    private ISaleOverdueService saleOverdueService;
+    @Autowired
+    private ISaleReceiveService receiveService;
+    @Autowired
+    private ISaleProduceService saleProduceService;
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("营业收入,净利润,已交税金")
+    @PostMapping("/details/businessIncome")
+    public CommonResult<Page<MoneyBusiness> > businessIncome(@RequestBody DetailVo dsBusParam) {
+        Page<MoneyBusiness> page = businessService.page(new Page<MoneyBusiness>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                getWapper(dsBusParam, new QueryWrapper<MoneyBusiness>()));
+        for (MoneyBusiness record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("当前资余额")
+    @PostMapping("/details/balance")
+    public CommonResult<Page<MoneyBusiness> > balance(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyBusiness> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyBusiness>());
+        Page<MoneyBusiness> page = businessService.page(new Page<MoneyBusiness>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (MoneyBusiness record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("借款明细表")
+    @PostMapping("/details/listBorrowDetail")
+    public CommonResult<Page<MoneyBorrowWarning>> listBorrowDetail(@RequestBody MoneyBorrowDetailParam detailParam) {
+
+        String month = detailParam.getMonth();
+        String startDate = detailParam.getStartDate();
+        String endDate = detailParam.getEndDate();
+        Date now = new Date();
+
+        QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(detailParam.getOrgId()), "org_id", detailParam.getOrgId());
+        if (StringUtils.isNotBlank(detailParam.getBankName())){
+            queryWrapper.and(i -> i.like("company",detailParam.getBankName())
+                    .or().like("money_type",detailParam.getBankName())
+                    .or().like("bank_name",detailParam.getBankName())
+                    .or().like("bank_type",detailParam.getBankName())
+            );
+        }
+
+        queryWrapper.ge(StringUtils.isNotBlank(startDate), "borrow_time", startDate);
+        queryWrapper.le(StringUtils.isNotBlank(endDate), "borrow_time", endDate);
+        queryWrapper.orderByDesc("borrow_time");
+        if (StringUtils.isNotBlank(month)){
+            queryWrapper.between("borrow_time",now, DateUtil.offsetMonth(now,Integer.parseInt(month)) );
+        }
+
+        queryWrapper.orderByDesc("borrow_time");
+        Page<MoneyBorrowWarning> page = borrowWarningService.page(new Page<MoneyBorrowWarning>(detailParam.getPageNum(), detailParam.getPageSize()), queryWrapper);
+        queryWrapper.select("sum(borrow_price) countMoney ");
+        MoneyBorrowWarning moneyBorrowWarning = borrowWarningService.getOne(queryWrapper);
+
+        for (MoneyBorrowWarning record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+        }
+        if (ObjectUtil.isNotEmpty(moneyBorrowWarning)){
+            page.setCountId(moneyBorrowWarning.getCountMoney());
+        }else {
+            page.setCountId("0");
+        }
+
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("期间费用")
+    @PostMapping("/details/getMoneyDetail")
+    public CommonResult<Page<MoneyCost> > getMoneyDetail(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyCost> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyCost>());
+        wapper.select("org_id,manage, sale,finance,(ifnull(manage,0) + ifnull(sale,0)   + ifnull(finance,0)) as allMoney ,create_time ,company  ,fname") ;
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("company",dsBusParam.getSearchWords())
+                    .or().like("fname",dsBusParam.getSearchWords())
+            );
+        }
+        Page<MoneyCost> page = moneyCostService.page(new Page<MoneyCost>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (MoneyCost record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+
+    @PostMapping("/details/visit")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("拜访次数")
+    public CommonResult<Page<SaleVisit>> visit(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleVisit> wapper = new QueryWrapper();
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("kehu",dsBusParam.getSearchWords())
+                    .or().like("sale_name",dsBusParam.getSearchWords())
+            );
+        }
+
+        Page<SaleVisit> page = saleVisitService.page( new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()), getWapper(dsBusParam, wapper));
+        for (SaleVisit record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/plan")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("销售计划")
+    public CommonResult<Page<SalePlan>> plan(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SalePlan> queryWrapper = new QueryWrapper();
+        Page<SalePlan> page = salePlanService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()), getWapper(dsBusParam, queryWrapper));
+        for (SalePlan record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/getContraceDetail")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation("合同金额")
+    public CommonResult<Page<SaleDetail>> getContraceDetail(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_contrace_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+
+            );
+        }
+
+        Page<SaleDetail> page =  saleDetailService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleDetail record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/getDeliverDetail")
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("发货金额")
+    public CommonResult<Page<SaleDeliver>> getDeliverDetail(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleDeliver> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_order",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+
+            );
+        }
+
+        Page<SaleDeliver> page = saleDeliverService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper)) ;
+        for (SaleDeliver record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/customer")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation("客户销售金额")
+    public CommonResult<Page<SaleCustomer>> customer(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleCustomer> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("customer",dsBusParam.getSearchWords()) );
+        }
+
+        Page<SaleCustomer> page = saleCustomerService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleCustomer record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 10)
+    @ApiOperation("各部门收入趋势分析")
+    @PostMapping("/details/produce")
+    public CommonResult<Page<MoneyProduce>> produce(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyProduce> wrapper = getWapper(dsBusParam, new QueryWrapper<MoneyProduce>());
+        String types = dsBusParam.getTypes();
+        //国内
+        if (StringUtils.isNotBlank(types) && "6".equals(types) ){
+            wrapper.isNotNull("in_money").ne("in_money" ,0);
+        }else {
+            wrapper.isNotNull("out_money").ne("in_money" ,0);
+        }
+        Page<MoneyProduce> page = moneyProduceService.page(new Page<MoneyProduce>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+        for (MoneyProduce record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+    @ApiOperationSupport(order = 11)
+    @ApiOperation("采购金额")
+    @PostMapping("/details/puchaseOrder")
+    public CommonResult<Page<PurchaseOrder>> puchaseOrder(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchaseOrder> wrapper = getWapper(dsBusParam, new QueryWrapper<PurchaseOrder>());
+        wrapper.isNotNull("order_number");
+        if(StringUtils.isNotBlank(dsBusParam.getMaterialTypes()) && "1".equals(dsBusParam.getMaterialTypes()) ){
+            wrapper.like("material","羊毛粗脂");
+        }
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("order_number",dsBusParam.getSearchWords())
+                    .or().like("material",dsBusParam.getSearchWords())
+
+            );
+        }
+        Page<PurchaseOrder> page = purchaseOrderService.page(new Page<PurchaseOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (PurchaseOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 12)
+    @ApiOperation("库存数量")
+    @PostMapping("/details/materialNum")
+    public CommonResult<Page<WarehouseStockDetail>> materialNum(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<WarehouseStockDetail> wrapper = getWapper(dsBusParam, new QueryWrapper<WarehouseStockDetail>());
+        if(StringUtils.isNotBlank(dsBusParam.getMaterialTypes()) && "1".equals(dsBusParam.getMaterialTypes()) ){
+            wrapper.like("material_name","羊毛粗脂");
+        }
+        wrapper.isNotNull("income_number");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("material_name",dsBusParam.getSearchWords())
+                    .or().like("stock_name",dsBusParam.getSearchWords())
+            );
+        }
+
+        Page<WarehouseStockDetail> page = warehouseStockDetailService.page(new Page<WarehouseStockDetail>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (WarehouseStockDetail record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+    @ApiOperationSupport(order = 13)
+    @ApiOperation("库存数量")
+    @PostMapping("/details/price")
+    public CommonResult<Page<PurchasePrice>> price(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<PurchasePrice> wrapper = getWapper(dsBusParam, new QueryWrapper<PurchasePrice>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("material",dsBusParam.getSearchWords())
+            );
+        }
+        Page<PurchasePrice> page = purchasePriceService.page(new Page<PurchasePrice>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (PurchasePrice record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+    @ApiOperationSupport(order = 14)
+    @ApiOperation("实际产量")
+    @PostMapping("/details/productionWorkPlan")
+    public CommonResult<Page<ProductionWorkstopPlan>> productionWorkPlan(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<ProductionWorkstopPlan> wrapper = getWapper(dsBusParam, new QueryWrapper<ProductionWorkstopPlan>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("produce_name",dsBusParam.getSearchWords())
+                    .or().like("location_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<ProductionWorkstopPlan> page = planService.page(new Page<ProductionWorkstopPlan>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (ProductionWorkstopPlan record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 16)
+    @ApiOperation("计划产量")
+    @PostMapping("/details/workPlan")
+    public CommonResult<Page<ProductionWritePlan>> workPlan(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<ProductionWritePlan> wrapper = getWapper(dsBusParam, new QueryWrapper<ProductionWritePlan>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("production_name",dsBusParam.getSearchWords())
+                    .or().like("location_name",dsBusParam.getSearchWords())
+                    .or().like("org_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<ProductionWritePlan> page = writePlanService.page(new Page<ProductionWritePlan>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (ProductionWritePlan record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/enery")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation("能耗数据填报列表")
+    public CommonResult page(@RequestBody Map<String,String> paramsMap) {
+        return energyService.page(paramsMap);
+    }
+
+
+
+    @PostMapping("/details/zhiliang")
+    @ApiOperationSupport(order = 15)
+    @ApiOperation("质量分析报表")
+    public  CommonResult<Page<QualityFenxibaogao>>  zhiliang(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<QualityFenxibaogao> wrapper = getWapper(dsBusParam, new QueryWrapper<QualityFenxibaogao>());
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("material_name",dsBusParam.getSearchWords())
+                    .or().like("self_batch_num",dsBusParam.getSearchWords())
+                    .or().like("inspec_num",dsBusParam.getSearchWords())
+                    .or().like("inspec_items",dsBusParam.getSearchWords())
+            );
+        }
+        Page<QualityFenxibaogao> page = qualityFenxibaogaoService.page(new Page<QualityFenxibaogao>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/qualityWrite")
+    @ApiOperationSupport(order = 16)
+    @ApiOperation("成品合格台账")
+    public  CommonResult<Page<WriteProduct>>  qualityWrite(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<WriteProduct> wrapper = new QueryWrapper<WriteProduct>();
+        wrapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        wrapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"report_date",dsBusParam.getStartDate());
+        wrapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"report_date",dsBusParam.getEndDate());
+        wrapper.orderByDesc("report_date");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wrapper.and(i -> i.like("production_name",dsBusParam.getSearchWords())
+                    .or().like("self_batch",dsBusParam.getSearchWords())
+                    .or().like("factory_batch",dsBusParam.getSearchWords())
+                    .or().like("production_unit",dsBusParam.getSearchWords())
+            );
+        }
+        Page<WriteProduct> page = writeProductService.page(new Page<WriteProduct>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+
+        for (WriteProduct record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @Autowired
+    private IHrPeopleWriteService peopleWriteService;
+
+    @PostMapping("/details/listBalance")
+    @ApiOperationSupport(order = 16)
+    @ApiOperation("员工人数")
+    public  CommonResult<Page<HrPeopleWrite>>  listBalance(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<HrPeopleWrite> wrapper = getWapper(dsBusParam, new QueryWrapper<HrPeopleWrite>());
+        Page<HrPeopleWrite> page = peopleWriteService.page(new Page<HrPeopleWrite>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wrapper);
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 17)
+    @ApiOperation("已交税金,产值")
+    @PostMapping("/details/busines")
+    public CommonResult<Page<MoneyBusiness> > busines(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyBusiness> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyBusiness>());
+        wapper.isNotNull("people_money");
+        Page<MoneyBusiness> page = businessService.page(new Page<MoneyBusiness>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (MoneyBusiness record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+
+    @Resource
+    private HrBaseEmployeeInfoService hrBaseEmployeeInfoService;
+
+    @ApiOperationSupport(order = 18)
+    @ApiOperation("人员列表")
+    @PostMapping("/details/list")
+    public CommonResult<Page<HrBaseEmployeeInfo> > list(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<HrBaseEmployeeInfo> wapper = getWapper(dsBusParam, new QueryWrapper<HrBaseEmployeeInfo>());
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("NAME",dsBusParam.getSearchWords())
+                    .or().like("NATION",dsBusParam.getSearchWords())
+                    .or().like("HOME_ADDRESS",dsBusParam.getSearchWords())
+                    .or().like("NATIVE_PLACE",dsBusParam.getSearchWords())
+                    .or().like("ID_CARD_NUMBER",dsBusParam.getSearchWords())
+                    .or().like("PHONE",dsBusParam.getSearchWords())
+                    .or().like("alma_mater",dsBusParam.getSearchWords())
+                    .or().like("post",dsBusParam.getSearchWords())
+                    .or().like("department_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<HrBaseEmployeeInfo> page = hrBaseEmployeeInfoService.page(new Page<HrBaseEmployeeInfo>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+
+        return CommonResult.data(page);
+    }
+
+
+    @ApiOperationSupport(order = 19)
+    @ApiOperation("收入占比分析 -- 产品销售趋势")
+    @PostMapping("/details/analysisIncome")
+    public CommonResult<Page<MoneyProduce0422> > analysisIncome(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyProduce0422> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyProduce0422>());
+        if(StringUtils.isNotBlank(dsBusParam.getTypes()) &&  "9".equals(dsBusParam.getTypes())){
+            wapper.isNotNull("material_qty");
+        }else {
+            wapper.isNotNull("material_amount");
+        }
+
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("material_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<MoneyProduce0422> page = produce0422Service.page(new Page<MoneyProduce0422>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (MoneyProduce0422 record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 19)
+    @ApiOperation("应收分析")
+    @PostMapping("/details/getOverdue")
+    public CommonResult<Page<MoneyWriteOverdue> > getOverdue(@RequestBody DetailVo dsBusParam) {
+//        QueryWrapper<MoneyWriteOverdue> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyWriteOverdue>());
+//        wapper.eq("document_type",1);
+        QueryWrapper<MoneyWriteOverdue> wapper = new QueryWrapper<>();
+        wapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        wapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"xsrq",dsBusParam.getStartDate());
+        wapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"xsrq",dsBusParam.getEndDate());
+        wapper.orderByDesc("xsrq");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("user_name",dsBusParam.getSearchWords())
+            .or().like("document_number",dsBusParam.getSearchWords())
+
+            );
+        }
+        Page<MoneyWriteOverdue> page = writeOverdueService.page(new Page<MoneyWriteOverdue>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (MoneyWriteOverdue record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 19)
+    @ApiOperation("目标收入")
+    @PostMapping("/details/getMoneyIncome")
+    public CommonResult<Page<MoneyIncome> > getMoneyIncome(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyIncome> wapper = new QueryWrapper<>();
+        wapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()), "org_id", dsBusParam.getOrgId());
+        wapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()), "year", dsBusParam.getStartDate());
+        wapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()), "year", dsBusParam.getEndDate());
+        wapper.orderByDesc("year");
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())) {
+            wapper.and(i -> i.like("company_name", dsBusParam.getSearchWords())
+            );
+        }
+        Page<MoneyIncome> page = incomeService.page(new Page<MoneyIncome>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (MoneyIncome record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompanyName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @ApiOperationSupport(order = 20)
+    @ApiOperation("实际收入")
+    @PostMapping("/details/MoneyIncomeList")
+    public CommonResult<Page<MoneyBusiness> > MoneyIncomeList(@RequestBody DetailVo dsBusParam) {
+        dsBusParam.setTypes("1");
+        Page<MoneyBusiness> page = businessService.page(new Page<MoneyBusiness>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                getWapper(dsBusParam, new QueryWrapper<MoneyBusiness>()));
+        for (MoneyBusiness record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/listProduceProfit")
+    @ApiOperationSupport(order = 21)
+    @ApiOperation("主要产品销售")
+    public CommonResult<Page<SaleDetail>> listProduceProfit(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_contrace_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+            );
+        }
+
+        Page<SaleDetail> page =  saleDetailService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleDetail record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @ApiOperationSupport(order = 22)
+    @ApiOperation("销售成本")
+    @PostMapping("/details/listForecast")
+    public CommonResult<Page<MoneyCost> > listForecast(@RequestBody DetailVo dsBusParam) {
+        QueryWrapper<MoneyCost> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyCost>());
+        wapper.select("org_id,manage, sale,finance,(ifnull(manage,0) + ifnull(sale,0)   + ifnull(finance,0)) as allMoney ,create_time ,company  ,fname") ;
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            wapper.and(i -> i.like("company",dsBusParam.getSearchWords())
+                    .or().like("fname",dsBusParam.getSearchWords())
+            );
+        }
+        Page<MoneyCost> page = moneyCostService.page(new Page<MoneyCost>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),wapper);
+        for (MoneyCost record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/saleOrder")
+    @ApiOperationSupport(order = 23)
+    @ApiOperation("订单金额-已签未发")
+    public CommonResult<Page<SaleOrder>> saleOrder(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleOrder> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+
+            );
+        }
+        Page<SaleOrder> page =  saleOrderService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/saleOrderWeiFa")
+    @ApiOperationSupport(order = 23)
+    @ApiOperation("已签未发")
+    public CommonResult<Page<SaleOrder>> saleOrderWeiFa(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleOrder> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+
+            );
+        }
+        Page<SaleOrder> page =  saleOrderService.saleOrderWeiFa(new Page<SaleOrder>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleOrder record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+    @PostMapping("/details/salPrice")
+    @ApiOperationSupport(order = 24)
+    @ApiOperation("总要产品单价")
+    public CommonResult<Page<SalePrice>> salPrice(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SalePrice> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("produce_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<SalePrice> page =  priceService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SalePrice record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/salesman")
+    @ApiOperationSupport(order = 25)
+    @ApiOperation("主要产品销售")
+    public CommonResult<Page<SaleDetail>> salesman(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_contrace_order",dsBusParam.getSearchWords())
+                    .or().like("customer",dsBusParam.getSearchWords())
+                    .or().like("salesman",dsBusParam.getSearchWords())
+                    .or().like("produce_name",dsBusParam.getSearchWords())
+            );
+        }
+
+        Page<SaleDetail> page =  saleDetailService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleDetail record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/saleCost")
+    @ApiOperationSupport(order = 25)
+    @ApiOperation("销售费用")
+    public CommonResult<Page<SaleCost>> saleCost(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleCost> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("sale_cost_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<SaleCost> page =  saleCostService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleCost record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/saleOverdue")
+    @ApiOperationSupport(order = 26)
+    @ApiOperation("逾期合同明细")
+    public CommonResult<Page<SaleOverdue>> saleOverdue(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleOverdue> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("overdue_order",dsBusParam.getSearchWords())
+            );
+        }
+        Page<SaleOverdue> page =  saleOverdueService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleOverdue record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/saleReceive")
+    @ApiOperationSupport(order = 27)
+    @ApiOperation("应收账款明细")
+    public CommonResult<Page<SaleReceive>> saleReceive(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleReceive> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("receive_order",dsBusParam.getSearchWords())
+            );
+        }
+        Page<SaleReceive> page =  receiveService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleReceive record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+    @PostMapping("/details/saleProduce")
+    @ApiOperationSupport(order = 27)
+    @ApiOperation("销售趋势")
+    public CommonResult<Page<SaleProduce>> saleProduce(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleProduce> queryWrapper = new QueryWrapper();
+        if (StringUtils.isNotBlank(dsBusParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("produce_name",dsBusParam.getSearchWords())
+            );
+        }
+        Page<SaleProduce> page =  saleProduceService.page(new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),getWapper(dsBusParam,queryWrapper));
+        for (SaleProduce record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(page);
+    }
+
+
+
+    private <T>  QueryWrapper<T> getWapper(DetailVo dsBusParam,QueryWrapper<T> queryWrapper) {
+
+        queryWrapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        queryWrapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"create_time",dsBusParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"create_time",dsBusParam.getEndDate());
+        queryWrapper.orderByDesc("create_time");
+
+        if (StringUtils.isNotBlank(dsBusParam.getTypes())){
+            for (String s : dsBusParam.getTypes().split(",")) {
+                if ("1".equals(s)) {
+                    queryWrapper.ne("business_income", 0);
+                } else if ("2".equals(s)) {
+                    queryWrapper.ne("profit", 0);
+                } else if ("3".equals(s)) {
+                    queryWrapper.ne("taxes", 0);
+                } else if ("4".equals(s)) {
+                    queryWrapper.ne("balance", 0);
+                } else if ("5".equals(s)) {
+                    queryWrapper.ne("business_cost", 0);
+                }
+            }
+
+        }
+
+        return queryWrapper;
+    }
+
+
+}

+ 205 - 0
huimv-farm/src/main/java/vip/xiaonuo/details/controller/ZhanBiDengController.java

@@ -0,0 +1,205 @@
+package vip.xiaonuo.details.controller;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.validation.annotation.Validated;
+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.pojo.CommonResult;
+import vip.xiaonuo.details.vo.DetailVo;
+import vip.xiaonuo.money.entity.MoneyBusiness;
+import vip.xiaonuo.money.entity.MoneyIncome;
+import vip.xiaonuo.money.mapper.MoneyBusinessMapper;
+import vip.xiaonuo.money.service.IMoneyBusinessService;
+import vip.xiaonuo.money.service.IMoneyIncomeService;
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
+import vip.xiaonuo.purchase.entity.vo.PurchaseMaterialVo;
+import vip.xiaonuo.purchase.mapper.PurchaseOrderMapper;
+import vip.xiaonuo.sale.entity.SaleCustomer;
+import vip.xiaonuo.sale.entity.SaleDetail;
+import vip.xiaonuo.sale.entity.SalePlan;
+import vip.xiaonuo.sale.entity.vo.SaleWanChengLvVo;
+import vip.xiaonuo.sale.mapper.SaleCustomerMapper;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
+import vip.xiaonuo.sale.mapper.SalePlanMapper;
+import vip.xiaonuo.sale.param.SaleCustomerParam;
+import vip.xiaonuo.sale.service.ISalePlanService;
+import vip.xiaonuo.sys.modular.org.entity.SysOrg;
+import vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+
+@Api(tags = "占比等控制器")
+@ApiSupport(author = "wang", order = 1)
+@RestController
+@Validated
+public class ZhanBiDengController {
+
+    @Autowired
+    private IMoneyBusinessService  businessService;
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
+
+    @Autowired
+    private SaleDetailMapper saleDetailMapper;
+    @Autowired
+    private IMoneyIncomeService incomeService;
+    @Autowired
+    private SalePlanMapper salePlanMapper;
+
+    @Autowired
+    private SaleCustomerMapper saleCustomerMapper;
+    @Autowired
+    private PurchaseOrderMapper purchaseOrderMapper;
+    @ApiOperationSupport(order = 20)
+    @ApiOperation("收入占比")
+    @PostMapping("/details/shouRuZhanBi")
+    public CommonResult<Page<MoneyBusiness> > MoneyIncomeList(@RequestBody DetailVo dsBusParam) {
+        dsBusParam.setTypes("1");
+        QueryWrapper<MoneyBusiness> wapper = getWapper(dsBusParam, new QueryWrapper<MoneyBusiness>());
+        wapper.select("SUM(  CONVERT(business_income,DECIMAL(20,2)))   businessIncome ,DATE_FORMAT(create_time, '%Y') createTime1  ,org_id ");
+        wapper.groupBy("DATE_FORMAT(create_time, '%Y') ","org_id");
+        Page<MoneyBusiness> page = businessService.page(new Page<MoneyBusiness>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),
+                wapper);
+        for (MoneyBusiness record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setCompany(sysOrg.getFdesc());
+
+            QueryWrapper<MoneyIncome> moneyIncomeQueryWrapper = new QueryWrapper<>();
+            moneyIncomeQueryWrapper.eq("org_id", record.getOrgId());
+            moneyIncomeQueryWrapper.eq("year", record.getCreateTime1());
+            moneyIncomeQueryWrapper.select("SUM(  CONVERT(year_target,DECIMAL(20,2))) yearTarget  ");
+            MoneyIncome one = incomeService.getOne(moneyIncomeQueryWrapper);
+            if (ObjectUtil.isNotEmpty(one) &&  Double.parseDouble(one.getYearTarget()) != 0.0){
+                record.setMuBiao(one.getYearTarget());
+                record.setZhanBi(calculate(Double.parseDouble(record.getBusinessIncome()),Double.parseDouble(one.getYearTarget())));
+            }
+
+        }
+        return CommonResult.data(page);
+    }
+
+
+    @PostMapping("/details/xiaoShouJiHuaWanCheng")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("销售计划完成率")
+    public CommonResult<Page<SaleWanChengLvVo>> plan(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleDetail> queryWrapper = getWapper(dsBusParam,new QueryWrapper<SaleDetail>());
+        queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m') ","org_id ");
+        Page<SaleWanChengLvVo>  saleDeliverVo =  saleDetailMapper.selectSumMoneyMonth2(new Page<SaleWanChengLvVo>(dsBusParam.getPageNum(), dsBusParam.getPageSize()),queryWrapper);
+        for (SaleWanChengLvVo saleWanChengLvVo : saleDeliverVo.getRecords()) {
+            QueryWrapper<SalePlan> queryWrapperPlan = new QueryWrapper<>();
+            queryWrapperPlan.eq("org_id", saleWanChengLvVo.getOrgId());
+            queryWrapperPlan.groupBy(" DATE_FORMAT(create_time,'%Y-%m')");
+            queryWrapperPlan.eq( "DATE_FORMAT(create_time,'%Y-%m') ", saleWanChengLvVo.getCreateTime());
+            queryWrapperPlan.select( "ifnull(SUM(CONVERT(sale_money, DECIMAL(10,2))),0) saleMoney  ");
+            SalePlan salePlan = salePlanMapper.selectOne(queryWrapperPlan);
+            saleWanChengLvVo.setPlanMoney("--");
+            saleWanChengLvVo.setValue("--");
+            if(ObjectUtil.isNotNull(salePlan)){
+                saleWanChengLvVo.setPlanMoney(salePlan.getSaleMoney());
+                saleWanChengLvVo.setValue(calculate(Double.parseDouble(saleWanChengLvVo.getSaleMoney()),Double.parseDouble(salePlan.getSaleMoney())));
+            }
+
+
+            SysOrg sysOrg = sysOrgMapper.selectById(saleWanChengLvVo.getOrgId());
+            saleWanChengLvVo.setOrgId(sysOrg.getFdesc());
+        }
+        return CommonResult.data(saleDeliverVo);
+    }
+
+
+
+    @ApiOperationSupport(order = 20)
+    @ApiOperation("客户排名")
+    @PostMapping("/details/keHuPaiMing")
+    public CommonResult<Page<SaleCustomer> > keHuPaiMing(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleCustomer> queryWrapper =   getWapper(dsBusParam,new QueryWrapper<SaleCustomer>());
+        queryWrapper.select(" customer customer,IFNULL(sum(sale_money),'0') saleMoney");
+        queryWrapper.groupBy("customer");
+        queryWrapper.orderByDesc("saleMoney");
+
+        Page<SaleCustomer> page = new Page<>(dsBusParam.getPageNum(), dsBusParam.getPageSize());
+
+        Page<SaleCustomer> selectPage = saleCustomerMapper.selectPage(page, queryWrapper);
+        List<SaleCustomer> records = selectPage.getRecords();
+        for (int i = 0; i < records.size(); i++) {
+            SaleCustomer saleDetail = records.get(i);
+            saleDetail.setId((int)((dsBusParam.getPageNum()-1) * dsBusParam.getPageSize() + i+ 1) );
+        }
+
+        return CommonResult.data(selectPage);
+    }
+    @Autowired
+    private SaleCustomerMapper customerMapper;
+
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("客户贡献")
+    @PostMapping("/details/keHuGongXian")
+    public CommonResult<Page<SaleCustomer> > gongYingShang(@RequestBody DetailVo dsBusParam) {
+
+        QueryWrapper<SaleCustomer> queryWrapper =getWapper(dsBusParam,new QueryWrapper<SaleCustomer>());
+
+        queryWrapper.select(" org_id ,customer customer,round(IFNULL(sum( CONVERT(sale_money,decimal(10,2))),0) /10000 ,2) saleMoney,create_time createTime");
+        queryWrapper.groupBy("customer","org_id");
+        queryWrapper.orderByDesc("saleMoney");
+        Page<SaleCustomer> saleCustomers = customerMapper.selectPage(new Page<SaleCustomer>(dsBusParam.getPageNum(),dsBusParam.getPageSize()),queryWrapper);
+        for (SaleCustomer record : saleCustomers.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgName(sysOrg.getFdesc());
+        }
+        return  CommonResult.data(saleCustomers);
+    }
+    public String calculate(double currentValue, double previousValue) {
+        // 处理零值情况
+        if (previousValue == 0) {
+            return "0";
+        }
+        // 计算同比变化率
+        double percentageChange = (currentValue / previousValue)* 100;
+
+        return String.format("%.2f", percentageChange);
+    }
+
+    private <T>  QueryWrapper<T> getWapper(DetailVo dsBusParam,QueryWrapper<T> queryWrapper) {
+
+        queryWrapper.eq(StringUtils.isNotBlank(dsBusParam.getOrgId()),"org_id",dsBusParam.getOrgId());
+        queryWrapper.ge(StringUtils.isNotBlank(dsBusParam.getStartDate()),"create_time",dsBusParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(dsBusParam.getEndDate()),"create_time",dsBusParam.getEndDate());
+        queryWrapper.orderByDesc("create_time");
+
+        if (StringUtils.isNotBlank(dsBusParam.getTypes())){
+            for (String s : dsBusParam.getTypes().split(",")) {
+                if ("1".equals(s)) {
+                    queryWrapper.ne("business_income", 0);
+                } else if ("2".equals(s)) {
+                    queryWrapper.ne("profit", 0);
+                } else if ("3".equals(s)) {
+                    queryWrapper.ne("taxes", 0);
+                } else if ("4".equals(s)) {
+                    queryWrapper.ne("balance", 0);
+                } else if ("5".equals(s)) {
+                    queryWrapper.ne("business_cost", 0);
+                }
+            }
+
+        }
+
+        return queryWrapper;
+    }
+}

+ 35 - 0
huimv-farm/src/main/java/vip/xiaonuo/details/vo/DetailVo.java

@@ -0,0 +1,35 @@
+package vip.xiaonuo.details.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+@Data
+public class DetailVo {
+    /**
+     * 当前页号
+     */
+    private long pageNum = 1;
+
+    /**
+     * 页面大小
+     */
+    private long pageSize = 10;
+
+   private String startDate ;
+
+   private String endDate;
+    @ApiModelProperty(value = "查询词", position = 3)
+   private String  searchWords;
+   private String  orgId;
+
+   @ApiModelProperty(value = "查询类型  1营业收入 2 净利润  3已交税金  4,资金余额 ,5营业成本  6 国内 7国外   8金额,9数量", position = 3)
+   private String  types;
+
+    @ApiModelProperty(value = "0全部,1主要原材料", position = 3)
+    private String materialTypes;
+
+
+
+
+}

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/erp/entity/xiaoshou/YvQiHeTongMingXi.java

@@ -25,4 +25,5 @@ public class YvQiHeTongMingXi {
     //出库日期
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date chuKuDate;
+    private String wuliao;
 }

+ 8 - 6
huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpXiaoShouServiceImpl.java

@@ -196,12 +196,12 @@ public class ErpXiaoShouServiceImpl implements IErpXiaoShouService {
             saleCost.setSaleCostMoney(String.format("%.2f",forObject.getFCREDIT()));
             saleCost.setSaleCostName(forObject.getFname());
             costMapper.insert(saleCost);
-            MoneyCost moneyCost = new MoneyCost();
-            moneyCost.setCreateTime(forObject.getFDATE());
-            moneyCost.setOrgId(forgid.getOrgId());
-            moneyCost.setSale(String.format("%.2f", forObject.getFCREDIT()));
-            moneyCost.setCompany(forgid.getFname());
-            moneyCostMapper.insert(moneyCost);
+//            MoneyCost moneyCost = new MoneyCost();
+//            moneyCost.setCreateTime(forObject.getFDATE());
+//            moneyCost.setOrgId(forgid.getOrgId());
+//            moneyCost.setSale(String.format("%.2f", forObject.getFCREDIT()));
+//            moneyCost.setCompany(forgid.getFname());
+//            moneyCostMapper.insert(moneyCost);
         }
 
 
@@ -400,6 +400,8 @@ public class ErpXiaoShouServiceImpl implements IErpXiaoShouService {
 //            saleOverdue.setOverdueDay();
             saleOverdue.setOverdueMoney(String.format("%.2f", forObject.getFALLAMOUNTLC()));
             saleOverdue.setOverdueOrder(forObject.getFBILLNO());
+            saleOverdue.setWuliao(forObject.getWuliao());
+            saleOverdue.setKehu(forObject.getKeHuName());
             overdueMapper.insert(saleOverdue);
 
         }

+ 3 - 3
huimv-farm/src/main/java/vip/xiaonuo/importData/entity/BankData.java

@@ -18,7 +18,7 @@ public class BankData {
      * 借款时间
      */
     @ApiModelProperty(value = "借款时间", position = 3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date borrowTime;
 
     /**
@@ -37,7 +37,7 @@ public class BankData {
      * 截至日期
      */
     @ApiModelProperty(value = "截至日期", position = 6)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date endTime;
 
 
@@ -52,7 +52,7 @@ public class BankData {
     private String bankType;
 
     @ApiModelProperty(value = "还款时间", position = 10)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date repaymentTime;
 
 

+ 5 - 4
huimv-farm/src/main/java/vip/xiaonuo/importData/service/impl/ImportDataImpl.java

@@ -355,6 +355,10 @@ public class ImportDataImpl implements ImportData {
                 InputStream in = files.getInputStream();
                 Workbook workbook = ExcelImportSheet.getTypeFromExtends(in , files.getOriginalFilename())
         ) {
+            MoneyWriteOverdue moneyWriteOverdue = new MoneyWriteOverdue();
+            moneyWriteOverdue.setBatchLast(0);
+            overdueMapper.update(moneyWriteOverdue, new UpdateWrapper<MoneyWriteOverdue>().eq("document_type",1));
+            System.out.println("批量修改完成");
 
             //根据名称获取单张表对象 也可以使用getSheetAt(int index)获取单张表的对象 获取第一张表
             Sheet sheet = workbook.getSheetAt(0);
@@ -386,10 +390,7 @@ public class ImportDataImpl implements ImportData {
                 }
 
             }
-            MoneyWriteOverdue moneyWriteOverdue = new MoneyWriteOverdue();
-            moneyWriteOverdue.setBatchLast(0);
-            overdueMapper.update(moneyWriteOverdue, new UpdateWrapper<MoneyWriteOverdue>().eq("document_type",1));
-            System.out.println("批量修改完成");
+
         } catch (Exception e) {
             e.printStackTrace();
             return CommonResult.error();

+ 11 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyBusiness.java

@@ -1,5 +1,6 @@
 package vip.xiaonuo.money.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;
@@ -75,6 +76,8 @@ public class MoneyBusiness implements Serializable {
     @ApiModelProperty(value = "创建时间", position = 7)
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
+    @TableField(exist = false)
+    private String createTime1;
 
 
     /**
@@ -94,4 +97,12 @@ public class MoneyBusiness implements Serializable {
 
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date deadline;
+    @TableField(exist = false)
+    private String company;
+    @ApiModelProperty(value = "目标收入", position = 9)
+    @TableField(exist = false)
+    private String muBiao;
+    @ApiModelProperty(value = "占比", position = 9)
+    @TableField(exist = false)
+    private String zhanBi;
 }

+ 4 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyCost.java

@@ -37,6 +37,7 @@ public class MoneyCost implements Serializable {
      */
     @ApiModelProperty(value = "组织id", position = 1)
     private String orgId;
+    private String orgName;
 
     /**
      * 创建时间
@@ -74,5 +75,8 @@ public class MoneyCost implements Serializable {
      */
     @ApiModelProperty(value = "研发费用", position = 7)
     private String research;
+
+    @ApiModelProperty(value = "费用总和", position = 7)
+    private String allMoney;
     private String fname;
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyWarning.java

@@ -54,7 +54,7 @@ public class MoneyWarning implements Serializable {
      * 预警时间
      */
     @ApiModelProperty(value = "预警时间", position = 5)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date warningDate;
 
     /**

+ 3 - 2
huimv-farm/src/main/java/vip/xiaonuo/money/mapper/MoneyBusinessMapper.java

@@ -7,6 +7,7 @@ import vip.xiaonuo.money.entity.MoneyBusiness;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import vip.xiaonuo.money.param.DsBusAllParam;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -29,9 +30,9 @@ public interface MoneyBusinessMapper extends BaseMapper<MoneyBusiness> {
 
     List<DsBusAllParam> getBalanceDetailYear(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper);
 
-    List<DsBusAllParam> getBorrowDetailMonth(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper);
+    List<DsBusAllParam> getBorrowDetailMonth(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper, @Param(value = "date")  String date);
 
-    List<DsBusAllParam> getBorrowDetailYear(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper);
+    List<DsBusAllParam> getBorrowDetailYear(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper ,@Param(value = "date")  String date);
 
     MoneyBusiness zhiBiao(@Param(Constants.WRAPPER)QueryWrapper<MoneyBusiness> wapper1);
 

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/param/MoneyBorrowParam.java

@@ -34,4 +34,7 @@ public class MoneyBorrowParam {
 
     @ApiModelProperty(value = "银行名称", required = true)
     private String bankName;
+    private String startDate ;
+
+    private String endDate;
 }

+ 5 - 5
huimv-farm/src/main/java/vip/xiaonuo/money/param/MoneyWriteOverdueAddParam.java

@@ -58,8 +58,8 @@ public class MoneyWriteOverdueAddParam  {
      * 到期日
      */
     @ApiModelProperty(value = "到期日", position = 6)
-    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
-    private Date endTime;
+//    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private String endTime;
 
     /**
      * 逾期金额
@@ -80,14 +80,14 @@ public class MoneyWriteOverdueAddParam  {
     @ApiModelProperty(value = "折人民币金额", position = 8)
     private String rmbje;
     @ApiModelProperty(value = "销售日期", position = 8)
-    private Date xsrq;
+    private String xsrq;
     @ApiModelProperty(value = "收款期限", position = 8)
     private String skqx;
     @ApiModelProperty(value = "逾期天数", position = 8)
     private String yqts;
     @ApiModelProperty(value = "截止日期", position = 8)
-    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
-    private Date deadline;
+//    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private String deadline;
 
 
 

+ 19 - 17
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBorrowWarningServiceImpl.java

@@ -76,11 +76,11 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "org_id", borrowParam.getOrgId());
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getBankName()), "bank_name", borrowParam.getBankName());
+        queryWrapper.ge(StringUtils.isNotBlank(borrowParam.getStartDate()),"borrow_time",borrowParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(borrowParam.getEndDate()),"borrow_time",borrowParam.getEndDate());
         queryWrapper.select(" IFNULL(sum(borrow_price),'0') borrowPrice");
         MoneyBorrowWarning borrowWarning = borrowWarningMapper.selectOne(queryWrapper);
-//        BigDecimal math = new BigDecimal("10000");
-//        BigDecimal bg = new BigDecimal(borrowWarning.getBorrowPrice());
-//        bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("money", borrowWarning.getBorrowPrice());
         return jsonObject;
@@ -91,6 +91,8 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "org_id", borrowParam.getOrgId());
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getBankName()), "bank_name", borrowParam.getBankName());
+        queryWrapper.ge(StringUtils.isNotBlank(borrowParam.getStartDate()), "repayment_time", borrowParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(borrowParam.getEndDate()), "repayment_time", borrowParam.getEndDate());
         List<MoneyBankNameVo> bankRank = borrowWarningMapper.getBankRank(queryWrapper);
         return bankRank;
     }
@@ -100,21 +102,21 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "org_id", borrowParam.getOrgId());
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getBankName()), "bank_name", borrowParam.getBankName());
-        List<MoneyBorrowPriceVo> list = new ArrayList<>();
+        queryWrapper.ge(StringUtils.isNotBlank(borrowParam.getStartDate()), "repayment_time", borrowParam.getStartDate());
+        queryWrapper.le(StringUtils.isNotBlank(borrowParam.getEndDate()), "repayment_time", borrowParam.getEndDate());
         List<MoneyBorrowPriceVo> borrowPrice = borrowWarningMapper.getBorrowPrice(queryWrapper);
-        for (int i = 1; i < 13; i++) {
-            MoneyBorrowPriceVo vo = new MoneyBorrowPriceVo();
-            vo.setBorrowTime(i+"月");
-            vo.setBorrowPrice("0");
-            for (MoneyBorrowPriceVo priceVo : borrowPrice) {
-                if (i == Integer.parseInt(priceVo.getBorrowTime().substring(5, 7))) {
-
-                    vo.setBorrowPrice(priceVo.getBorrowPrice());
-                }
-            }
-            list.add(vo);
-        }
-        return list;
+//        for (int i = 1; i < 13; i++) {
+//            MoneyBorrowPriceVo vo = new MoneyBorrowPriceVo();
+//            vo.setBorrowTime();
+//            vo.setBorrowPrice("0");
+//            for (MoneyBorrowPriceVo priceVo : borrowPrice) {
+//                if (i == Integer.parseInt(priceVo.getBorrowTime().substring(5, 7))) {
+//                    vo.setBorrowPrice(priceVo.getBorrowPrice());
+//                }
+//            }
+//            list.add(vo);
+//        }
+        return borrowPrice;
     }
 
     @Override

+ 5 - 3
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBusinessServiceImpl.java

@@ -290,10 +290,12 @@ public class MoneyBusinessServiceImpl extends ServiceImpl<MoneyBusinessMapper, M
         QueryWrapper<MoneyBusiness> wapper = new QueryWrapper<MoneyBusiness>();
         wapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId).orderByAsc("borrow_time").groupBy("ymonth");
         List<DsBusAllParam> busAllParams;
+
+        String format = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
         if (ObjectUtil.isEmpty(type) || 0 ==  type){
-            busAllParams = businessMapper.getBorrowDetailMonth(wapper);
+            busAllParams = businessMapper.getBorrowDetailMonth(wapper,format);
         }else {
-            busAllParams = businessMapper.getBorrowDetailYear(wapper);
+            busAllParams = businessMapper.getBorrowDetailYear(wapper,format);
         }
         return busAllParams;
     }
@@ -318,7 +320,7 @@ public class MoneyBusinessServiceImpl extends ServiceImpl<MoneyBusinessMapper, M
     @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);
+        queryWrapper.eq(StringUtils.isNotBlank(pageParam.getOrgId()), "org_id", pageParam.getOrgId()).ne("taxes" ,0).orderByDesc("id");
         Page<MoneyBusiness> page = new Page<MoneyBusiness>(pageParam.getPageNum(), pageParam.getPageSize());
         return this.page(page, queryWrapper);
 

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyIncomeServiceImpl.java

@@ -132,7 +132,7 @@ public class MoneyIncomeServiceImpl extends ServiceImpl<MoneyIncomeMapper, Money
         QueryWrapper<MoneyIncome> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("year", year);
         queryWrapper.select(" IFNULL(sum(year_target),'0') yearTarget,org_id,company_name companyName").groupBy("org_id");
-        List<MoneyIncome> incomes = incomeMapper.selectList(queryWrapper);//
+        List<MoneyIncome> incomes = incomeMapper.selectList(queryWrapper);
         if (incomes.size() == 0) {
             income.setYearTarget("0");
             income1.setYearTarget("0");

+ 0 - 18
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java

@@ -118,24 +118,6 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
         String orgId = overdueParam.getOrgId();
         String time = overdueParam.getTime();
         List<MoneyBorrowUserVo> userRank = overdueMapper.getUserRank(time + "-01 00:00:00", time + "-31 23:59:59",orgId);
-//        BigDecimal math = new BigDecimal("10000");
-//        List<MoneyBorrowUserVo> list = new ArrayList<>();
-//
-//        if (userRank.size() != 0) {
-//            Double collect = 0.00;
-//            Double overdue = 0.00;
-//            for (int i = 0; i < userRank.size(); i++) {
-//                if (i < 15) {
-//
-//                    list.add(userRank.get(i));
-//                } else {
-//                    collect = collect + Double.valueOf(userRank.get(i).getCollectPrice());
-//                    overdue = overdue + Double.valueOf(userRank.get(i).getOverduePrice());
-//                }
-//            }
-//
-//
-//        }
         return userRank;
     }
 

+ 1 - 2
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProducePriceServiceImpl.java

@@ -44,8 +44,7 @@ public class MoneyProducePriceServiceImpl extends ServiceImpl<MoneyProducePriceM
 
     @Autowired
     private SaleDetailMapper detailMapper;
-    @Autowired
-    private SaleCostMapper costMapper;
+
     @Autowired
     private MoneyCostMapper moneyCostMapper;
 

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

@@ -43,8 +43,6 @@ public class MoneyProduceServiceImpl extends ServiceImpl<MoneyProduceMapper, Mon
     @Autowired
     private MoneyProduceMapper produceMapper;
     @Autowired
-    private MoneyProduceIncomeMapper incomeMapper;
-    @Autowired
     private MoneyProduce0422Mapper produce0422Mapper;
 
     @Override

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

@@ -55,8 +55,8 @@ public class MoneyWriteOverdueServiceImpl extends ServiceImpl<MoneyWriteOverdueM
         Page<MoneyWriteOverdue> page = new Page<>(pageNum, pageSize);
         QueryWrapper<MoneyWriteOverdue> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.ge(StringUtils.isNotBlank(startDate), "end_time", orgId);
-        queryWrapper.le(StringUtils.isNotBlank(endDate), "end_time", orgId);
+        queryWrapper.ge(StringUtils.isNotBlank(startDate), "end_time", startDate);
+        queryWrapper.le(StringUtils.isNotBlank(endDate), "end_time", endDate);
         queryWrapper.orderByDesc("end_time");
         if (StringUtils.isBlank(batchLast)){
             batchLast = "1";

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionWorkstopPlanController.java

@@ -51,6 +51,7 @@ public class ProductionWorkstopPlanController {
     @ApiOperationSupport(order = 2)
     @ApiOperation("大屏生成与质量指标")
     public CommonResult<ProductionWorkPlanTargetVo> getTarget(@RequestBody ProductionTargetParam targetParam) {
+
         return CommonResult.data(workstopPlanService.getTarget(targetParam));
     }
 

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionCheck.java

@@ -90,7 +90,7 @@ public class ProductionCheck implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position =10 )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionWorkstopPlan.java

@@ -66,7 +66,7 @@ public class ProductionWorkstopPlan implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 5)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProductionYield.java

@@ -54,7 +54,7 @@ public class ProductionYield implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position = 4)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/entity/vo/ProductionLocationVo.java

@@ -14,4 +14,5 @@ public class ProductionLocationVo {
 
     @ApiModelProperty(value = "组织id",position = 3)
     private String orgId;
+    private String orgName;
 }

+ 11 - 3
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionTargetServiceImpl.java

@@ -23,6 +23,8 @@ import org.springframework.stereotype.Service;
 import vip.xiaonuo.production.service.IProductionWorkstopPlanService;
 import vip.xiaonuo.purchase.entity.PurchaseOrder;
 import vip.xiaonuo.purchase.entity.vo.PurchaseOrderVo;
+import vip.xiaonuo.sys.modular.org.entity.SysOrg;
+import vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -60,6 +62,8 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
     private IProductionWorkstopPlanService planService;
     @Autowired
     private SysBaseFilterInfoMapper baseFilterInfoMapper;
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
 
     @Override
     public ProductionTarget getTarget(ProductionParam productionParam) {
@@ -259,7 +263,8 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
             wrapper.groupBy("ymonth").orderByAsc("ymonth");
 
             TargetListDetailVo targetListDetailVo = new TargetListDetailVo();
-            targetListDetailVo.setChenJian(productionLocationVo.getLocationName());
+            SysOrg sysOrg = sysOrgMapper.selectById(productionLocationVo.getOrgId());
+            targetListDetailVo.setChenJian(sysOrg.getFdesc()+"--"+productionLocationVo.getLocationName());
             List<TargetListDetailVos> listDetail = energyMapper.getListDetail(wrapper);
             wrapper.clear();
             wrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
@@ -298,7 +303,9 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
             wrapper.groupBy("ymonth").orderByAsc("ymonth");
 
             TargetListDetailVo targetListDetailVo = new TargetListDetailVo();
-            targetListDetailVo.setChenJian(productionLocationVo.getLocationName());
+            SysOrg sysOrg = sysOrgMapper.selectById(productionLocationVo.getOrgId());
+
+            targetListDetailVo.setChenJian(sysOrg.getFdesc()+"--"+productionLocationVo.getLocationName());
             targetListDetailVo.setValues(rateMapper.productionParam(wrapper));
             targetListDetailVos.add(targetListDetailVo);
         }
@@ -322,7 +329,8 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
             wrapper.groupBy("ymonth").orderByAsc("ymonth");
 
             TargetListDetailVo targetListDetailVo = new TargetListDetailVo();
-            targetListDetailVo.setChenJian(productionLocationVo.getLocationName());
+            SysOrg sysOrg = sysOrgMapper.selectById(productionLocationVo.getOrgId());
+            targetListDetailVo.setChenJian(sysOrg.getFdesc()+"--"+productionLocationVo.getLocationName());
             QueryWrapper<ProductionEnergyPrice> priceQueryWrapper = new QueryWrapper<>();
             List<ProductionEnergyPrice> energyPrice = priceMapper.selectList(priceQueryWrapper);
             ProductionEnergyPrice productionEnergyPrice = energyPrice.get(0);

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWorkstopPlanServiceImpl.java

@@ -472,6 +472,7 @@ public class ProductionWorkstopPlanServiceImpl extends ServiceImpl<ProductionWor
             productionLocationVo.setLocationId(produceLocation.getLocationId() +"");
             productionLocationVo.setLocationName(produceLocation.getLocationName());
             productionLocationVo.setOrgId(produceLocation.getOrgId());
+            productionLocationVo.setOrgName(produceLocation.getOrgName());
             list.add(productionLocationVo);
         }
 

+ 17 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWriteEnergyServiceImpl.java

@@ -6,6 +6,7 @@ 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.common.pojo.CommonResult;
+import vip.xiaonuo.production.entity.ProductionWorkstopPlan;
 import vip.xiaonuo.production.entity.ProductionWriteEnergy;
 import vip.xiaonuo.production.mapper.ProductionWriteEnergyMapper;
 import vip.xiaonuo.production.param.ProductionWriteEnergyAddParam;
@@ -27,7 +28,8 @@ import java.util.Map;
  */
 @Service
 public class ProductionWriteEnergyServiceImpl extends ServiceImpl<ProductionWriteEnergyMapper, ProductionWriteEnergy> implements IProductionWriteEnergyService {
-
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
     @Autowired
     private ProductionWriteEnergyMapper energyMapper;
     @Autowired
@@ -72,6 +74,7 @@ public class ProductionWriteEnergyServiceImpl extends ServiceImpl<ProductionWrit
         String orgId = paramsMap.get("orgId");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
+        String searchWords = paramsMap.get("searchWords");
         if ("".equals(pageNum) || null == pageNum) {
             pageNum = "1";
             pageSize = "20";
@@ -79,6 +82,19 @@ public class ProductionWriteEnergyServiceImpl extends ServiceImpl<ProductionWrit
         Page<ProductionWriteEnergy> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         QueryWrapper<ProductionWriteEnergy> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id", orgId);
+        if (StringUtils.isNotBlank(searchWords)){
+            queryWrapper.and(i -> i.like("location_name",searchWords)
+                    .or().like("org_name",searchWords)
+            );
+        }
+
+
+        for (ProductionWriteEnergy record : page.getRecords()) {
+            SysOrg sysOrg = sysOrgMapper.selectById(record.getOrgId());
+            record.setOrgId(sysOrg.getFdesc());
+        }
+
+
         return CommonResult.data(energyMapper.selectPage(page, queryWrapper));
     }
 }

+ 5 - 25
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionYieldServiceImpl.java

@@ -94,35 +94,15 @@ public class ProductionYieldServiceImpl extends ServiceImpl<ProductionYieldMappe
 
             QueryWrapper<ProductionWritePlan> queryWrapper1 = new QueryWrapper<>();
             if (0 == timeType) {
-                Calendar calendar = Calendar.getInstance();
-                if (null == number) {
-                    calendar.add(Calendar.MONTH, -13);
-                } else {
-                    calendar.add(Calendar.MONTH, -number);
-                }
-                queryWrapper1.between("create_time", calendar.getTime(), new Date());
-//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
-//                String format = sdf.format(productionYield.getCreateTime());
-//                queryWrapper1.between("create_time", format + "-01-01 00:00:00", format + "-12-31 23:59:59");
+                queryWrapper1.between("create_time", DateUtil.beginOfYear(productionYield.getCreateTime()), DateUtil.endOfYear(productionYield.getCreateTime()));
             } else {
-                Calendar calendar = Calendar.getInstance();
-                if (null == number) {
-                    calendar.add(Calendar.MONTH, -13);
-                } else {
-                    calendar.add(Calendar.MONTH, -number);
-                }
-                queryWrapper1.between("create_time", calendar.getTime(), new Date());
-//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-//                String format = sdf.format(productionYield.getCreateTime());
-//                queryWrapper1.between("create_time", format + "-01 00:00:00", format + "-31 23:59:59");
+                queryWrapper1.between("create_time", DateUtil.beginOfMonth(productionYield.getCreateTime()),
+                        DateUtil.endOfMonth(productionYield.getCreateTime()));
+
             }
             queryWrapper1.select("convert(IFNULL(sum(production_plan),'0'),decimal(10,2)) productionPlan");
             ProductionWritePlan writePlan = writePlanMapper.selectOne(queryWrapper1);
-//            if (ObjectUtil.isEmpty(writePlan) && writePlan.getIsErp() == 1){
-//                productionYield.setActualProduction(df.format(Double.parseDouble(writePlan.getActualProduction() )* Double.parseDouble(conver)));
-//            }else {
-//                productionYield.setActualProduction(df.format(Double.parseDouble(productionYield.getActualProduction() )* Double.parseDouble(conver)));
-//            }
+
             if (ObjectUtil.isEmpty(writePlan) || "0".equals(writePlan.getProductionPlan())) {
                 productionYield.setCompleteRate("0");
                 productionYield.setPlanProduction("0");

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/controller/PurchaseOrderController.java

@@ -81,7 +81,7 @@ public class PurchaseOrderController {
     @ApiOperationSupport(order = 5)
     @ApiOperation("供应商占比分析")
     @PostMapping("/purchase-order/materialType")
-    public CommonResult<JSONArray> materialType(@RequestBody PurchaseParam param) {
+    public CommonResult<List> materialType(@RequestBody PurchaseParam param) {
         return CommonResult.data(purchaseOrderService.materialType(param));
     }
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchaseContract.java

@@ -60,7 +60,7 @@ public class PurchaseContract implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 5)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 4 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchaseOrder.java

@@ -7,6 +7,7 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -101,6 +102,7 @@ public class PurchaseOrder implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 12)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -120,8 +122,9 @@ public class PurchaseOrder implements Serializable {
     private Double caiGou;
 
 
-    @ApiModelProperty(value = "合同类型 0原辅料包材采购合同 1五金材料采购合同 2设备采购合同 3工程服务采购合同 4其他服务类采购合同 5办公用品采购合同", position = 15)
+    @ApiModelProperty(value = "订单类型 0原辅料包材采购订单 1五金材料采购订单 2设备采购订单 3工程服务采购订单 4其他服务类采购订单 5办公用品采购订单", position = 15)
     private Integer orderType;
+
     private String fnumber;
 
     private String htNo;

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchasePay.java

@@ -69,7 +69,7 @@ public class PurchasePay 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 createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/PurchasePrice.java

@@ -48,7 +48,7 @@ public class PurchasePrice implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 8 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/entity/vo/PurchaseMaterialVo.java

@@ -1,8 +1,11 @@
 package vip.xiaonuo.purchase.entity.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class PurchaseMaterialVo {
 
@@ -10,5 +13,9 @@ public class PurchaseMaterialVo {
     private String name;
 
     @ApiModelProperty(value = "供应商供应数量", position = 2)
-    private String value;
+    private Double value;
+    private String orgName ;
+    private String orgId ;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime ;
 }

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/purchase/mapper/PurchaseOrderMapper.java

@@ -3,6 +3,7 @@ package vip.xiaonuo.purchase.mapper;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.money.param.DsBusAllParam;
 import vip.xiaonuo.purchase.entity.PurchaseOrder;
@@ -51,4 +52,6 @@ public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrder> {
     List<PurchaseAllParam> getZhuYaoYuanCaiNumDetil(@Param(Constants.WRAPPER)QueryWrapper<PurchaseOrder> wapper);
 
     List<PurchaseAllParam> getZhuYaoYuanCaiNumDetilYear(@Param(Constants.WRAPPER)QueryWrapper<PurchaseOrder> wapper);
+
+    Page<PurchaseMaterialVo> getSupplier2(Page<PurchaseMaterialVo> purchaseOrderPage, @Param(Constants.WRAPPER)QueryWrapper<PurchaseMaterialVo> wapper);
 }

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/purchase/param/PurchasePayParam.java

@@ -34,6 +34,7 @@ public class PurchasePayParam {
     private String time;
     private String startDate;
     private String endDate;
+    private String searchWords;
 
     @ApiModelProperty(value = "当前页码", required = true)
     private Integer pageNum;

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/IPurchaseOrderService.java

@@ -34,7 +34,7 @@ public interface IPurchaseOrderService extends IService<PurchaseOrder> {
     List<PurchaseMoneyVo> listMoney(PurchaseParam param);
 
     //供应商占比分析
-    JSONArray materialType(PurchaseParam param);
+    List materialType(PurchaseParam param);
 
     PurchaseAllParam getIndicator(DongShiPurchaseParam priceParam);
 

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

@@ -257,7 +257,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
     }
 
     @Override
-    public JSONArray materialType(PurchaseParam param) {
+    public List materialType(PurchaseParam param) {
         QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
         String time = param.getTime();
         DateTime dateTime = DateUtil.beginOfYear(new Date());
@@ -267,20 +267,29 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
             queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
         }
         queryWrapper.eq(StringUtils.isNotBlank(param.getOrgId()), "org_id", param.getOrgId());
-        BigDecimal math = new BigDecimal("10000");
         List<PurchaseMaterialVo> list = purchaseOrderMapper.getSupplier(queryWrapper);
-        for (int i = 0; i < list.size(); i++) {
-            BigDecimal bg = new BigDecimal(list.get(i).getValue());
-//            bg = bg.divide(math, 2, RoundingMode.HALF_UP);
-//            list.get(i).setValue(bg.toString());
-            if (list.get(i).getName() == null) {
-                list.remove(i);
+        int i = 0;
+        Double value = 0.0;
+        List list1 = new ArrayList();
+        for (PurchaseMaterialVo purchaseMaterialVo : list) {
+            Map map = new HashMap();
+            if (i <5){
+                if (purchaseMaterialVo.getName() !=null){
+                    map.put("name",purchaseMaterialVo.getName());
+                    map.put("value",purchaseMaterialVo.getValue());
+                    list1.add(map);
+                }
+
+            }else {
+               value += purchaseMaterialVo.getValue();
             }
+            i++;
         }
-        JSONArray jsonArray = new JSONArray(list);
-        System.out.println("数组的大小" + jsonArray.size());
-        JSONArray array = jsonArraySort(jsonArray, "value", true);
-        return array;
+        HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
+        objectObjectHashMap.put("name","其它");
+        objectObjectHashMap.put("value",String.format("%.2f",value));
+        list1.add(objectObjectHashMap);
+        return list1;
     }
 
     @Override

+ 6 - 0
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchasePayServiceImpl.java

@@ -41,6 +41,12 @@ public class PurchasePayServiceImpl extends ServiceImpl<PurchasePayMapper, Purch
 
         queryWrapper.ge(StringUtils.isNotBlank(startDate),"end_time", startDate);
         queryWrapper.le(StringUtils.isNotBlank(endDate),"end_time",  endDate + " 23:59:59");
+        if (StringUtils.isNotBlank(purchasePayParam.getSearchWords())){
+            queryWrapper.and(i -> i.like("payable_object",purchasePayParam.getSearchWords())
+                    .or().like("purchase_material",purchasePayParam.getSearchWords())
+
+            );
+        }
 
         queryWrapper.orderByDesc("end_time");
         Page page = new Page<PurchasePay>(purchasePayParam.getPageNum(), purchasePayParam.getPageSize());

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/risk/entity/RiskContractWarning.java

@@ -67,7 +67,7 @@ public class RiskContractWarning implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position =6)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     private String fname;

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskSupplierServiceImpl.java

@@ -64,7 +64,7 @@ public class RiskSupplierServiceImpl extends ServiceImpl<RiskSupplierMapper, Ris
             if (null == number) {
                 startdate =DateUtil.offset(DateUtil.beginOfYear(date), DateField.YEAR,-3);
             } else {
-                startdate =DateUtil.offsetMonth(DateUtil.beginOfYear(date),-number);
+                startdate =DateUtil.offset(DateUtil.beginOfYear(date),DateField.YEAR,-number);
             }
 
             queryWrapper.ge("create_time", startdate);

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleCost.java

@@ -48,7 +48,7 @@ public class SaleCost implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position = 3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createTime;
 
     /**

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleCustomer.java

@@ -48,7 +48,7 @@ public class SaleCustomer implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position =3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -56,6 +56,7 @@ public class SaleCustomer implements Serializable {
      */
     @ApiModelProperty(value = "组织id", position =4)
     private String orgId;
+    private String orgName;
 
 
 }

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleDeliver.java

@@ -54,7 +54,7 @@ public class SaleDeliver implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position = 4)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -62,6 +62,7 @@ public class SaleDeliver implements Serializable {
      */
     @ApiModelProperty(value = "组织id",position = 5)
     private String orgId;
+    private String orgName;
 
     private String saleNumber;
     private String produceName;

+ 17 - 6
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleDetail.java

@@ -1,5 +1,6 @@
 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;
@@ -72,7 +73,7 @@ public class SaleDetail implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 6)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -81,15 +82,25 @@ public class SaleDetail implements Serializable {
     @ApiModelProperty(value = "组织id",position =7 )
     private String orgId;
 
+    @ApiModelProperty(value = "组织id",position =7 )
+    private String orgName;
+
+
     //币别 1.人民币 2港币 3欧元 4日元 5新台币 6英镑 7美元
+    @ApiModelProperty(value = "币别 1.人民币 2港币 3欧元 4日元 5新台币 6英镑 7美元",position =7 )
     private int currencyId;
-
+    @ApiModelProperty(value = "单价",position =7 )
     private String taxPrice;
-
+    @ApiModelProperty(value = "原币金额",position =7 )
     private String allAmonunt;
- private String fentryid;;
- private String salesmanName;;
- private String salesmanMoney;;
+    private String fentryid;
+
+
+
+    @TableField(exist = false)
+    private String salesmanName;
+    @TableField(exist = false)
+     private String salesmanMoney;
 
 
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleInvoice.java

@@ -48,7 +48,7 @@ public class SaleInvoice implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 5 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleOrder.java

@@ -1,5 +1,6 @@
 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;
@@ -54,7 +55,7 @@ public class SaleOrder implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position =4)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -70,6 +71,9 @@ public class SaleOrder implements Serializable {
     private String allAmonunt;
     private String taxPrice;
     private String contractId;
+    @TableField(exist = false)
+    private String orgName;
+
 
 
 }

+ 4 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleOverdue.java

@@ -77,5 +77,9 @@ public class SaleOverdue implements Serializable {
     @ApiModelProperty(value = "组织id",position =7 )
     private String orgId;
 
+    private String wuliao;
+
+    private String kehu;
+
 
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SalePrice.java

@@ -48,7 +48,7 @@ public class SalePrice implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position =3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleProduce.java

@@ -54,7 +54,7 @@ public class SaleProduce implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position =4 )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/SaleReceive.java

@@ -60,7 +60,7 @@ public class SaleReceive implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间",position = 5)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/vo/SaleInvoiceVo.java

@@ -16,6 +16,6 @@ public class SaleInvoiceVo {
     private String saleInvoiceMoney;
 
     @ApiModelProperty(value = "发货时间", position = 3)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 }

+ 1 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/entity/vo/SaleWanChengLvVo.java

@@ -20,5 +20,6 @@ public class SaleWanChengLvVo implements Serializable {
     private  String planMoney;
     private  String createTime;
     private  String value;
+    private  String orgId;
 
 }

+ 6 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/mapper/SaleDetailMapper.java

@@ -2,9 +2,11 @@ package vip.xiaonuo.sale.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.sale.entity.SaleDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.sale.entity.SaleOrder;
 import vip.xiaonuo.sale.entity.vo.SaleDeliverVo;
 import vip.xiaonuo.sale.entity.vo.SaleWanChengLvVo;
 
@@ -27,4 +29,8 @@ public interface SaleDetailMapper extends BaseMapper<SaleDetail> {
     List< SaleWanChengLvVo> selectSumMoneyMonth(@Param(Constants.WRAPPER)QueryWrapper<SaleDetail> queryWrapper);
 
     List<SaleWanChengLvVo> selectSumMoneyYear(@Param(Constants.WRAPPER)QueryWrapper<SaleDetail> queryWrapper);
+
+    Page<SaleOrder>  selectSumMoneyNoTwo(Page<SaleOrder> objectPage,  @Param(Constants.WRAPPER) QueryWrapper<SaleDetail> contrNoQueryWrapper);
+
+    Page<SaleWanChengLvVo> selectSumMoneyMonth2(Page<SaleWanChengLvVo> saleWanChengLvVoPage,   @Param(Constants.WRAPPER)QueryWrapper<SaleDetail> queryWrapper);
 }

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/param/SaleCustomerParam.java

@@ -30,6 +30,9 @@ public class SaleCustomerParam {
     @ApiModelProperty(value = "orgId", required = true)
     private String orgId;
     private String customer;
+    private String startDate;
+    private String endDate;
+    private String keyword;
 
 
 }

+ 4 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISaleOrderService.java

@@ -1,5 +1,8 @@
 package vip.xiaonuo.sale.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import vip.xiaonuo.sale.entity.SaleDetail;
 import vip.xiaonuo.sale.entity.SaleOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.sale.param.SaleOrderParam;
@@ -18,4 +21,5 @@ public interface ISaleOrderService extends IService<SaleOrder> {
 
     List<SaleOrder> getList(SaleOrderParam saleOrderParam);
 
+    Page<SaleOrder> saleOrderWeiFa(Page<SaleOrder> objectPage, QueryWrapper<SaleOrder> wapper);
 }

+ 3 - 7
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleCustomerServiceImpl.java

@@ -45,14 +45,10 @@ public class SaleCustomerServiceImpl extends ServiceImpl<SaleCustomerMapper, Sal
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         queryWrapper.like(StringUtils.isNotBlank(customer), "customer", customer);
         queryWrapper.select(" customer customer,round(IFNULL(sum( CONVERT(sale_money,decimal(10,2))),0) /10000 ,2) saleMoney,create_time createTime");
-        queryWrapper.groupBy("customer,DATE_FORMAT(create_time,'%Y-%m')");
+        queryWrapper.groupBy("customer");
+        queryWrapper.orderByDesc("saleMoney");
         List<SaleCustomer> saleCustomers = customerMapper.selectList(queryWrapper);
-//        BigDecimal math = new BigDecimal("10000");
-//        for (SaleCustomer saleCustomer : saleCustomers) {
-//            BigDecimal bg = new BigDecimal(saleCustomer.getSaleMoney());
-//            bg = bg.divide(math, 2, RoundingMode.HALF_UP);
-//            saleCustomer.setSaleMoney(bg.toString());
-//        }
+
         return saleCustomers;
     }
 

+ 0 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleDetailServiceImpl.java

@@ -99,7 +99,6 @@ public class SaleDetailServiceImpl extends ServiceImpl<SaleDetailMapper, SaleDet
         List<SaleDetail> records = selectPage.getRecords();
         for (int i = 0; i < records.size(); i++) {
             SaleDetail saleDetail = records.get(i);
-
             saleDetail.setId((pageNum-1) *pageSize + i+ 1 );
         }
 

+ 14 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOrderServiceImpl.java

@@ -2,9 +2,13 @@ package vip.xiaonuo.sale.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.sale.entity.SaleDetail;
 import vip.xiaonuo.sale.entity.SaleOrder;
 import vip.xiaonuo.sale.entity.SalePrice;
+import vip.xiaonuo.sale.entity.vo.SaleDeliverVo;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
 import vip.xiaonuo.sale.mapper.SaleOrderMapper;
 import vip.xiaonuo.sale.param.SaleOrderParam;
 import vip.xiaonuo.sale.service.ISaleOrderService;
@@ -71,5 +75,15 @@ public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderMapper, SaleOrder
         }
         return saleOrders;
     }
+    @Autowired
+    private SaleDetailMapper saleDetailMapper;
+
+    @Override
+    public Page<SaleOrder> saleOrderWeiFa(Page<SaleOrder> objectPage, QueryWrapper<SaleOrder> wapper) {
+        QueryWrapper<SaleDetail> contrNoQueryWrapper = new QueryWrapper<>();
+        contrNoQueryWrapper.isNull("c.sorr_derno");
+        Page<SaleOrder>  page =    saleDetailMapper.selectSumMoneyNoTwo(objectPage,contrNoQueryWrapper);
+        return page;
+    }
 
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOverdueServiceImpl.java

@@ -33,7 +33,7 @@ public class SaleOverdueServiceImpl extends ServiceImpl<SaleOverdueMapper, SaleO
         QueryWrapper<SaleOverdue> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         queryWrapper.orderByDesc("create_time");
-        queryWrapper.select("overdue_order ,delivery_date ,delivery_number , round(IFNULL(CONVERT(overdue_money,decimal(10,2)) ,0)/ 10000 ,2)  overdueMoney,overdue_day,create_time,org_id");
+        queryWrapper.select("kehu, wuliao,overdue_order ,delivery_date ,delivery_number , round(IFNULL(CONVERT(overdue_money,decimal(10,2)) ,0)/ 10000 ,2)  overdueMoney,overdue_day,create_time,org_id");
         Page<SaleOverdue> page = new Page(overdueParam.getPageNum(), overdueParam.getPageSize());
         return overdueMapper.selectPage(page,queryWrapper);
     }

+ 4 - 42
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleProduceServiceImpl.java

@@ -89,34 +89,13 @@ public class SaleProduceServiceImpl extends ServiceImpl<SaleProduceMapper, SaleP
     public JSONArray getPriceList(SaleProduceParam produceParam) {
         Integer parentId = produceParam.getParentId();
         String time = produceParam.getDate();
+        String orgId = produceParam.getOrgId();
         String year = time.substring(0, 4);
         int last = Integer.parseInt(year) - 1;
         QueryWrapper<ErpBaseMaterial> materialQueryWrapper = new QueryWrapper<>();
         materialQueryWrapper.eq("parent_id", parentId);
         List<ErpBaseMaterial> materials = materialMapper.selectList(materialQueryWrapper);
-     /*   List<SaleProduce> yearList = new ArrayList<>();
-        List<SaleProduce> lastYearList = new ArrayList<>();
-        if (materials.size() != 0) {
-            for (ErpBaseMaterial material : materials) {
-                QueryWrapper<SaleProduce> queryWrapper = new QueryWrapper<>();
-                queryWrapper.like("produce_name", material.getMaterialName());
-                queryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
-                queryWrapper.select(" sum(sale_money) saleMoney,create_time createTime");
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
-                List<SaleProduce> lastProduce = produceMapper.selectList(queryWrapper);
 
-
-                QueryWrapper<SaleProduce> queryWrapper1 = new QueryWrapper<>();
-                queryWrapper1.like("produce_name", material.getMaterialName());
-                queryWrapper1.between("create_time", last + "-01-01 00:00:00", last + "-12-31 23:59:59");
-                queryWrapper1.select(" sum(sale_money) saleMoney,create_time createTime");
-                queryWrapper1.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
-                List<SaleProduce> yearProduce = produceMapper.selectList(queryWrapper1);
-
-            }
-        }
-
-        SimpleDateFormat sdf = new SimpleDateFormat("MM");*/
         JSONArray jsonArray = new JSONArray();
         for (int i = 1; i < 13; i++) {
             JSONObject jsonObject = new JSONObject();
@@ -131,6 +110,7 @@ public class SaleProduceServiceImpl extends ServiceImpl<SaleProduceMapper, SaleP
                 queryWrapper.like("produce_name", material.getMaterialName());
                 queryWrapper.between("create_time", year + "-"+i+"-01 00:00:00", year +"-"+i+"-31 23:59:59");
                 queryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney,create_time createTime");
+                queryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
                 SaleProduce saleProduce = produceMapper.selectOne(queryWrapper);
                 yearMoney = yearMoney + Double.valueOf(saleProduce.getSaleMoney());
 
@@ -138,32 +118,14 @@ public class SaleProduceServiceImpl extends ServiceImpl<SaleProduceMapper, SaleP
                 queryWrapper1.like("produce_name", material.getMaterialName());
                 queryWrapper1.between("create_time", last + "-"+i+"-01 00:00:00", last +"-"+i+"-31 23:59:59");
                 queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney,create_time createTime");
+                queryWrapper1.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
                 SaleProduce yearProduce = produceMapper.selectOne(queryWrapper1);
                 lastYearMoney = lastYearMoney + Double.valueOf(yearProduce.getSaleMoney());
             }
             DecimalFormat def = new DecimalFormat("0.00");
             jsonObject.put("year", def.format(yearMoney));
             jsonObject.put("lastYear", def.format(lastYearMoney));
-            /*if (yearList.size() != 0) {
-                for (SaleProduce produce : yearList) {
-                    String format = sdf.format(produce.getCreateTime());
-                    if (i == Integer.parseInt(format)) {
-                        jsonObject.put("year", produce.getSaleMoney());
-                    }
-                }
-            } else {
-                jsonObject.put("year", "0");
-            }
-            if (lastYearList.size() != 0) {
-                for (SaleProduce produce : lastYearList) {
-                    String format = sdf.format(produce.getCreateTime());
-                    if (i == Integer.parseInt(format)) {
-                        jsonObject.put("lastYear", produce.getSaleMoney());
-                    }
-                }
-            } else {
-                jsonObject.put("lastYear", "0");
-            }*/
+
             jsonArray.add(jsonObject);
         }
         return jsonArray;

+ 1 - 3
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleReceiveServiceImpl.java

@@ -29,14 +29,12 @@ public class SaleReceiveServiceImpl extends ServiceImpl<SaleReceiveMapper, SaleR
     @Autowired
     private SaleReceiveMapper receiveMapper;
 
-    @Autowired
-    private RiskContractWarningMapper riskContractWarningMapper;
-
     @Override
     public Page<SaleReceive> getList(SaleReceiveParam receiveParam) {
         String orgId = receiveParam.getOrgId();
         QueryWrapper<SaleReceive> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.ne("receive_day", 0);
         queryWrapper.select("receive_order ,receive_day ,round(IFNULL(CONVERT(receive_money,decimal(10,2)) ,0)/ 10000 ,2)  receiveMoney " +
                 " ,round(IFNULL(CONVERT(payment_money,decimal(10,2)) ,0)/ 10000 ,2)  paymentMoney,create_time");
         queryWrapper.orderByDesc("create_time");

+ 1 - 2
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleSalesmanServiceImpl.java

@@ -32,8 +32,7 @@ import java.util.*;
 @Service
 public class SaleSalesmanServiceImpl extends ServiceImpl<SaleSalesmanMapper, SaleSalesman> implements ISaleSalesmanService {
 
-    @Autowired
-    private SaleSalesmanMapper salesmanMapper;
+
     @Autowired
     private SaleDetailMapper detailMapper;
 

+ 7 - 7
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleTargetServiceImpl.java

@@ -190,7 +190,7 @@ public class SaleTargetServiceImpl extends ServiceImpl<SaleTargetMapper, SaleTar
     public  String calculate(String currentValue, String previousValue) {
         // 处理零值情况
         if (StringUtils.isBlank(previousValue)|| "0.00".equals(previousValue) ||"0".equals(previousValue) || "0.0".equals(previousValue)) {
-            return "100";
+            return "--";
         }
         // 计算同比变化率
         double percentageChange = (Double.parseDouble(currentValue)/Double.parseDouble( previousValue)) * 100;
@@ -341,9 +341,9 @@ public class SaleTargetServiceImpl extends ServiceImpl<SaleTargetMapper, SaleTar
 
 
         vo.setComplete(calculate(monthOrder.getSaleMoney(),monthPlan.getSaleMoney()));
-        vo.setCompleteRate("100");
+        vo.setCompleteRate("--");
         vo.setYearCompleteRate(calculate(orderYear.getSaleMoney(),yearPlan.getSaleMoney()));
-        vo.setCompleteYear("100");
+        vo.setCompleteYear("--");
         if (yearOrder.getSaleMoney().equals("0")) {
             vo.setSaleMoneyRate("0");
         } else {
@@ -394,9 +394,9 @@ public class SaleTargetServiceImpl extends ServiceImpl<SaleTargetMapper, SaleTar
         }
         // 计算同比变化率
         double percentageChange = ((currentValue - previousValue) / previousValue) * 100;
-        if (percentageChange >500){
-            return "100";
-        }
+//        if (percentageChange >500){
+//            return "100";
+//        }
         return String.format("%.2f", percentageChange);
     }
 
@@ -404,7 +404,7 @@ public class SaleTargetServiceImpl extends ServiceImpl<SaleTargetMapper, SaleTar
     public  List<SaleWanChengLvVo>  getCompleteDetail(SaleParam saleParam) {
         //TODO
         Integer type = saleParam.getType();
-        String time = saleParam.getTime();
+
         String orgId = saleParam.getOrgId();
         QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);

+ 13 - 0
huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiChangDto.java

@@ -0,0 +1,13 @@
+package vip.xiaonuo.tonghua.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShiChangDto {
+    private Integer errorcode;
+    private String errmsg;
+    private List<ShiChangTables> tables;
+
+}

+ 15 - 0
huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiChangTables.java

@@ -0,0 +1,15 @@
+package vip.xiaonuo.tonghua.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShiChangTables {
+    private List<String> id;
+    private List<String> time;
+    private List<String> value;
+    private List<String> rtime;
+
+
+}

+ 6 - 0
huimv-farm/src/main/java/vip/xiaonuo/tonghua/dto/ShiZhiTableDto.java

@@ -7,4 +7,10 @@ import java.util.List;
 @Data
 public class ShiZhiTableDto {
     private List<Double> ths_market_value_stock;
+
+    private List<Double> ths_oa_ncf_ratio_stock;
+
+    private List<String> ths_ncf_from_oa_stock;
+
+    private List<String> ths_total_owner_equity_stock;
 }

File diff ditekan karena terlalu besar
+ 59 - 1
huimv-farm/src/main/java/vip/xiaonuo/tonghua/tongHuaShunController.java


File diff ditekan karena terlalu besar
+ 184 - 0
huimv-farm/src/main/java/vip/xiaonuo/tonghua/tongShiChangFenXiController.java


+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/tonghua/vo/TongHuaParam.java

@@ -9,7 +9,7 @@ public class TongHuaParam {
 
     private int year;
     private int quarter;
-
+    private int type;
     public TongHuaParam(int year, int quarter) {
         this.year = year;
         this.quarter = quarter;

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/warehouse/entity/WarehouseStockSecond.java

@@ -66,7 +66,7 @@ public class WarehouseStockSecond implements Serializable {
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间", position = 6)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
     @ApiModelProperty(value = "物料编码", position = 5)

+ 2 - 2
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseMaterialStockServiceImpl.java

@@ -104,7 +104,7 @@ public class WarehouseMaterialStockServiceImpl extends ServiceImpl<WarehouseMate
         queryWrapper.ge(StringUtils.isNotBlank(startDate),"create_time", startDate);
         queryWrapper.le(StringUtils.isNotBlank(endDate),"create_time", endDate);
         queryWrapper.like(StringUtils.isNotBlank(materialName),"material", materialName);
-        queryWrapper.eq( "material_type", materialType);
+        queryWrapper.eq( StringUtils.isNotBlank(materialType),"material_type", materialType);
         queryWrapper.orderByAsc("create_time");
         return outStockMapper.selectPage(page,queryWrapper);
     }
@@ -121,7 +121,7 @@ public class WarehouseMaterialStockServiceImpl extends ServiceImpl<WarehouseMate
         Page<WarehouseMaterialInStock> page = new Page<>(pageNum, pageSize);
         QueryWrapper<WarehouseMaterialInStock> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId);
-        queryWrapper.eq( "material_type", materialType);
+        queryWrapper.eq( StringUtils.isNotBlank(materialType),"material_type", materialType);
         queryWrapper.ge(StringUtils.isNotBlank(startDate),"create_time", startDate);
         queryWrapper.le(StringUtils.isNotBlank(endDate),"create_time", endDate);
         queryWrapper.like(StringUtils.isNotBlank(materialName),"material", materialName);

+ 50 - 30
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockServiceImpl.java

@@ -5,9 +5,12 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import vip.xiaonuo.erp.entity.ErpBdRawMaterial;
 import vip.xiaonuo.erp.mapper.ErpBdRawMaterialMapper;
+import vip.xiaonuo.purchase.entity.PurchasePay;
+import vip.xiaonuo.purchase.mapper.PurchasePayMapper;
 import vip.xiaonuo.warehouse.entity.*;
 
 import vip.xiaonuo.warehouse.entity.vo.WarehouseStockSecondVo;
@@ -48,41 +51,54 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
     private WarehouseStockDetailMapper detailMapper;
     @Autowired
     private ErpBdRawMaterialMapper bdRawMaterialMapper;
+    @Autowired
+    private PurchasePayMapper payMapper;
 
     @Override
     public WarehouseStockVo getOneTail(WarehouseStockTailParam stockParam) {
         String orgId = stockParam.getOrgId();
-        DateTime day = DateUtil.beginOfDay(new Date());
+        DateTime day = DateUtil.beginOfMonth(new Date());
+        String time = stockParam.getTime();
+        DateTime parse ;
+        if ("".equals(time) || null == time) {
+            parse = new DateTime();
+        }else {
+            parse = DateUtil.parse(time,"yyyy-MM");
+        }
+
+        DateTime startDate = DateUtil.beginOfMonth(parse);
+        DateTime endDate = DateUtil.endOfMonth(parse);
+
         QueryWrapper<WarehouseStock> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
-            queryWrapper.ge("create_time", day);
+        if ("".equals(time) || null == time) {
+            queryWrapper.ge("create_time", startDate);
         } else {
-            queryWrapper.between("create_time", stockParam.getTime()+" 00:00:00",stockParam.getTime()+" 23:59:59");
+            queryWrapper.between("create_time", startDate,endDate);
         }
         queryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
         WarehouseStock warehouseStock = stockMapper.selectOne(queryWrapper);
         QueryWrapper<WarehouseIncomStock> incomQueryWrapper = new QueryWrapper<>();
         incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
-            incomQueryWrapper.ge("create_time", day);
+        if ("".equals(time) || null == time) {
+            incomQueryWrapper.ge("create_time", startDate);
         } else {
-            incomQueryWrapper.between("create_time", stockParam.getTime()+" 00:00:00",stockParam.getTime()+" 23:59:59");
+            incomQueryWrapper.between("create_time", startDate,endDate);
         }
-        incomQueryWrapper.select(" IFNULL(sum(material),'0') material,IFNULL(sum(finish_produce),'0') finishProduce,IFNULL(sum(half_produce),'0') halfProduce" +
-                ",IFNULL(sum(low_value),'0') lowValue,IFNULL(sum(package_material),'0') packageMaterial,IFNULL(sum(lanolin),'0') lanolin" +
-                ",IFNULL(sum(fish_oil),'0') fishOil");
+        incomQueryWrapper.select("round(IFNULL(sum(material),'0') ,2)material,round(IFNULL(sum(finish_produce),'0'),2) finishProduce,round(IFNULL(sum(half_produce),'0'),2) halfProduce" +
+                ",round(IFNULL(sum(low_value),'0') ,2) lowValue,round(IFNULL(sum(package_material),'0'),2) packageMaterial,round(IFNULL(sum(lanolin),'0'),2) lanolin" +
+                ",round(IFNULL(sum(fish_oil),'0'),2) fishOil");
         WarehouseIncomStock incomeStock = incomStockMapper.selectOne(incomQueryWrapper);
         QueryWrapper<WarehouseOutStock> outQueryWrapper = new QueryWrapper<>();
         outQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
-            outQueryWrapper.ge("create_time", day);
+        if ("".equals(time) || null == time) {
+            outQueryWrapper.ge("create_time", startDate);
         } else {
-            outQueryWrapper.between("create_time", stockParam.getTime()+" 00:00:00",stockParam.getTime()+" 23:59:59");
+            outQueryWrapper.between("create_time", startDate,endDate);
         }
-        outQueryWrapper.select(" IFNULL(sum(material),'0') material,IFNULL(sum(finish_produce),'0') finishProduce,IFNULL(sum(half_produce),'0') halfProduce" +
-                ",IFNULL(sum(low_value),'0') lowValue,IFNULL(sum(package_material),'0') packageMaterial,IFNULL(sum(lanolin),'0') lanolin" +
-                ",IFNULL(sum(fish_oil),'0') fishOil");
+        outQueryWrapper.select(" round(IFNULL(sum(material),'0'),2) material,round(IFNULL(sum(finish_produce),'0'),2) finishProduce,round(IFNULL(sum(half_produce),'0'),2) halfProduce" +
+                ",round(IFNULL(sum(low_value),'0'),2) lowValue,round(IFNULL(sum(package_material),'0') ,2) packageMaterial,round(IFNULL(sum(lanolin),'0'),2) lanolin" +
+                ",round(IFNULL(sum(fish_oil),'0') ,2)fishOil");
         WarehouseOutStock outStock = outStockMapper.selectOne(outQueryWrapper);
         WarehouseStockVo vo = new WarehouseStockVo();
         if (ObjectUtil.isNotEmpty(warehouseStock)) {
@@ -127,15 +143,17 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
             vo.setFishOilOut("0");
         }
         DateTime month = DateUtil.beginOfMonth(new Date());
-        incomQueryWrapper.clear();
-        incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        incomQueryWrapper.groupBy("lanolin_supplier");
-        List<WarehouseIncomStock> incomStocks = incomStockMapper.selectList(incomQueryWrapper);
+        QueryWrapper<PurchasePay> purchasePayQueryWrapper = new QueryWrapper<>();
+        purchasePayQueryWrapper.clear();
+        purchasePayQueryWrapper.like("purchase_material","羊毛");
+        purchasePayQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        purchasePayQueryWrapper.groupBy("payable_object");
+        List<PurchasePay> incomStocks = payMapper.selectList(purchasePayQueryWrapper);
 
-        incomQueryWrapper.clear();
-        incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        incomQueryWrapper.groupBy("fish_oil_supplier");
-        List<WarehouseIncomStock> incomStocks1 = incomStockMapper.selectList(incomQueryWrapper);
+        purchasePayQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        purchasePayQueryWrapper.groupBy("payable_object");
+        purchasePayQueryWrapper.like("purchase_material","鱼油");
+        List<PurchasePay> incomStocks1 = payMapper.selectList(purchasePayQueryWrapper);
 
         vo.setLanolinSupplier(incomStocks.size());
 
@@ -146,17 +164,17 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
         outQueryWrapper.clear();
         incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         incomQueryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
-        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
-            incomQueryWrapper.ge("create_time", month);
+        if ("".equals(time) || null == time) {
+            incomQueryWrapper.ge("create_time", DateUtil.beginOfYear(parse));
         } else {
-            incomQueryWrapper.between("create_time", stockParam.getTime()+" 00:00:00",stockParam.getTime()+" 23:59:59");
+            incomQueryWrapper.between("create_time",  DateUtil.beginOfYear(parse), DateUtil.endOfYear(parse));
         }
         outQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         outQueryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
-        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+        if ("".equals(time) || null == time) {
             outQueryWrapper.ge("create_time", month);
         } else {
-            outQueryWrapper.between("create_time", stockParam.getTime()+" 00:00:00",stockParam.getTime()+" 23:59:59");
+            outQueryWrapper.between("create_time", DateUtil.beginOfYear(parse), DateUtil.endOfYear(parse));
         }
         WarehouseIncomStock stock = incomStockMapper.selectOne(incomQueryWrapper);
         WarehouseOutStock outStock1 = outStockMapper.selectOne(outQueryWrapper);
@@ -177,6 +195,8 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
         return vo;
     }
 
+
+
     @Override
     public List<WarehouseStock> listStockChange(WarehouseStockParam stockParam) {
         String orgId = stockParam.getOrgId();
@@ -233,7 +253,7 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
         QueryWrapper<WarehouseStockDetail> queryWrapper1 = new QueryWrapper<>();
         queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         queryWrapper1.eq("fnumber", fnumber);
-        queryWrapper.le("create_time", time + "-31 23:59:59");
+        queryWrapper1.le("create_time", time + "-31 23:59:59");
         queryWrapper1.select(" CONVERT(IFNULL(sum(material_number),'0'),decimal(10,2)) materialNumber");
         WarehouseStockDetail stockDetail = detailMapper.selectOne(queryWrapper1);
         if (ObjectUtil.isNotEmpty(stockDetail)) {

+ 9 - 1
huimv-farm/src/main/resources/application-test1.properties

@@ -28,6 +28,14 @@ spring.datasource.dynamic.datasource.master.username=eartag
 spring.datasource.dynamic.datasource.master.password=eartag@2022
 spring.datasource.dynamic.strict=true
 
+spring.datasource.druid.validation-query=SELECT 1
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+spring.datasource.druid.min-evictable-idle-time-millis=300000
+
+
 # postgres
 #spring.datasource.dynamic.datasource.master.driver-class-name=org.postgresql.Driver
 #spring.datasource.dynamic.datasource.master.url=jdbc:postgresql://localhost:5432/snowy
@@ -64,7 +72,7 @@ spring.datasource.dynamic.strict=true
 #spring.datasource.dynamic.strict=true
 
 # druid monitor configuration
-spring.datasource.druid.stat-view-servlet.enabled=true
+c
 spring.datasource.druid.stat-view-servlet.login-username=admin
 spring.datasource.druid.stat-view-servlet.login-password=123456
 

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

@@ -10,9 +10,9 @@
     </select>
 
     <select id="getBorrowPrice" resultType="vip.xiaonuo.money.entity.vo.MoneyBorrowPriceVo">
-        select IFNULL(sum(borrow_price),'0') 'borrowPrice',borrow_time 'borrowTime' from money_borrow_warning
+        select IFNULL(sum(borrow_price),'0') 'borrowPrice',DATE_FORMAT(borrow_time,'%Y-%m') 'borrowTime' from money_borrow_warning
         ${ew.customSqlSegment}
         group by (DATE_FORMAT(borrow_time,'%Y-%m'))
-        order by borrow_time asc
+        order by borrow_time
     </select>
 </mapper>

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

@@ -22,9 +22,9 @@
     </select>
 
     <select id="getSupplier" resultType="vip.xiaonuo.purchase.entity.vo.PurchaseMaterialVo">
-        select IFNULL(sum(purchase_money),'0') as 'value',supplier as 'name' from purchase_order
+        select IFNULL(sum(  CONVERT(`purchase_money`,DECIMAL(10,2))),0) as 'value',supplier as 'name' from purchase_order
         ${ew.customSqlSegment}
-        group by supplier
+        group by supplier  order by `value` desc
     </select>
     <select id="purchaseAll" resultType="vip.xiaonuo.purchase.param.PurchaseAllParam">
  SELECT
@@ -120,4 +120,9 @@ SELECT SUM(material_number )  zhuYaoNum,
         ${ew.customSqlSegment}
 
     </select>
+    <select id="getSupplier2" resultType="vip.xiaonuo.purchase.entity.vo.PurchaseMaterialVo">
+         select IFNULL(sum(  CONVERT(`purchase_money`,DECIMAL(10,2))),0) as 'value',supplier as 'name'   ,org_id  ,create_time  from purchase_order
+        ${ew.customSqlSegment}
+        group by supplier  order by `value` desc
+    </select>
 </mapper>

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

@@ -26,12 +26,11 @@ ORDER BY
     SUM(overdue_money) AS totalAmount,
     SUM(CASE WHEN chuku IS NOT NULL THEN overdue_money ELSE 0 END) AS pendingAmount,
       ROUND(ifnull(((SUM(CASE WHEN chuku IS NOT NULL THEN overdue_money ELSE 0 END) / SUM(overdue_money))) ,0)* 100 ,2) AS rank
-
 FROM
     `risk_contract_warning`
     ${ew.customSqlSegment}
 GROUP BY
-   kehu,  DATE_FORMAT(overdue_time, '%Y')
+   DATE_FORMAT(overdue_time, '%Y')
 ORDER BY
      overdue_time
 

+ 17 - 0
huimv-farm/src/main/resources/mapper/SaleDetailMapper.xml

@@ -34,4 +34,21 @@ SELECT SUM(CONVERT(sale_money, DECIMAL(10,2))) saleMoney ,DATE_FORMAT(create_tim
   ${ew.customSqlSegment}
    GROUP BY  DATE_FORMAT(create_time,'%Y')
     </select>
+    <select id="selectSumMoneyNoTwo" resultType="vip.xiaonuo.sale.entity.SaleOrder">
+
+             SELECT
+   *
+FROM `sale_detail`  a
+LEFT JOIN `sale_order` b ON a.sale_contrace_order = b.contract_id
+LEFT JOIN `sale_deliver` c ON c.sorr_derno  = b.sale_order
+ ${ew.customSqlSegment}
+
+    </select>
+    <select id="selectSumMoneyMonth2" resultType="vip.xiaonuo.sale.entity.vo.SaleWanChengLvVo">
+
+SELECT SUM(CONVERT(sale_money, DECIMAL(10,2))) saleMoney ,DATE_FORMAT(create_time,'%Y-%m') createTime ,org_id FROM `sale_detail`
+     ${ew.customSqlSegment}
+
+    </select>
+
 </mapper>

+ 1 - 1
huimv-farm/src/test/java/vip/xiaonuo/CaiWuTest.java

@@ -65,7 +65,7 @@ public class CaiWuTest {
 
     @Test
     public void  test3(){
-        DateTime parse = DateUtil.parse("2024-10-30", "yyyy-MM-dd");
+        DateTime parse = DateUtil.parse("2024-11-01", "yyyy-MM-dd");
         erpCaiWuService.getDangQianYueYingYeE(parse);
     }
     @Test

File diff ditekan karena terlalu besar
+ 28 - 0
huimv-farm/src/test/java/vip/xiaonuo/TongHuaTest.java


+ 5 - 5
huimv-farm/src/test/java/vip/xiaonuo/XiaoShouTest.java

@@ -84,14 +84,14 @@ public class XiaoShouTest {
 
     @Test
     public void test2_1() {
-        Date parse = DateUtil.parse("2024-10-01", "yyyy-MM-dd");
+        Date parse = DateUtil.parse("2025-06-01", "yyyy-MM-dd");
         erpXiaoShouService.getXiaoShouFeiYong21(parse);
 
     }
 
     @Test
     public void test2_2() {
-        Date parse = DateUtil.parse("2024-10-01", "yyyy-MM-dd");
+        Date parse = DateUtil.parse("2025-06-01", "yyyy-MM-dd");
         erpXiaoShouService.getXiaoShouFeiYong22(parse);
 
 
@@ -99,13 +99,13 @@ public class XiaoShouTest {
 
     @Test
     public void test2_3() {
-        Date parse = DateUtil.parse("2024-10-01", "yyyy-MM-dd");
+        Date parse = DateUtil.parse("2025-06-01", "yyyy-MM-dd");
         erpXiaoShouService.getXiaoShouFeiYong23(parse);
     }
 
     @Test
     public void test2_4() {
-        Date parse = DateUtil.parse("2024-10-01", "yyyy-MM-dd");
+        Date parse = DateUtil.parse("2025-06-01", "yyyy-MM-dd");
         erpXiaoShouService.getXiaoShouFeiYong24(parse);
     }
 
@@ -125,7 +125,7 @@ public class XiaoShouTest {
     @Test
     public void test5() {
         //不用
-        Date parse = DateUtil.parse("2024-10-30", "yyyy-MM-dd");
+        Date parse = DateUtil.parse("2020-10-30", "yyyy-MM-dd");
         erpXiaoShouService.getYvQiHeTongMingXi(parse);
     }
     //== 改过的

+ 2 - 1
snowy-common/src/main/java/vip/xiaonuo/common/pojo/CommonResult.java

@@ -123,7 +123,8 @@ public class CommonResult<T> implements Serializable{
 
     // 构建失败
     public static <T> CommonResult<T> error() {
-        return new CommonResult<>(CODE_ERROR, "抱歉,系统遇到了问题,请稍后再试或联系技术支持", null);
+//        return new CommonResult<>(CODE_ERROR, "抱歉,系统遇到了问题,请稍后再试或联系技术支持", null);
+        return new CommonResult<>(CODE_ERROR, "登录信息不完整,请刷新后重试", null);
     }
     public static <T> CommonResult<T> error(String msg) {
         return new CommonResult<>(CODE_ERROR, msg, null);

+ 1 - 0
snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java

@@ -516,6 +516,7 @@ public class AuthServiceImpl implements AuthService {
         saBaseLoginUser.setPassword(null);
         saBaseLoginUser.setPermissionCodeList(null);
         saBaseLoginUser.setDataScopeList(null);
+
         return saBaseLoginUser;
     }
 

+ 1 - 12
snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/config/provider/DevConfigApiProvider.java

@@ -1,15 +1,4 @@
-/*
- * 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.dev.modular.config.provider;
 
 import vip.xiaonuo.dev.api.DevConfigApi;

+ 1 - 1
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/controller/SysOrgController.java

@@ -206,7 +206,7 @@ public class SysOrgController {
             }
             for (SysOrg org : sysOrgs) {
                 JSONObject jsonObject1 = new JSONObject();
-                jsonObject1.put("name", org.getName());
+                jsonObject1.put("name", org.getFdesc());
                 jsonObject1.put("id", org.getId());
                 jsonArray.add(jsonObject1);
             }

+ 1 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/org/entity/SysOrg.java

@@ -69,4 +69,5 @@ public class SysOrg extends CommonEntity implements TransPojo {
     @ApiModelProperty(value = "扩展信息", position = 8)
     @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private String extJson;
+    private String fdesc;
 }