523096025 2 mesi fa
parent
commit
ab55c9d43b
29 ha cambiato i file con 865 aggiunte e 68 eliminazioni
  1. 13 3
      huimv-farm/src/main/java/vip/xiaonuo/erp/controller/SysBaseFilterInfoController.java
  2. 13 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBusinessServiceImpl.java
  3. 43 2
      huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionConsumeController.java
  4. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionEnergyController.java
  5. 3 3
      huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionTargetController.java
  6. 1 0
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/ProduceLocation.java
  7. 150 0
      huimv-farm/src/main/java/vip/xiaonuo/production/entity/vo/ProductionWriteEnergyVo.java
  8. 25 0
      huimv-farm/src/main/java/vip/xiaonuo/production/mapper/ProductionWriteEnergyMapper.java
  9. 70 0
      huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeAddParam.java
  10. 71 0
      huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeEditParam.java
  11. 35 0
      huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeIdParam.java
  12. 51 0
      huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumePageParam.java
  13. 6 0
      huimv-farm/src/main/java/vip/xiaonuo/production/param/TargetListDetailVo.java
  14. 35 0
      huimv-farm/src/main/java/vip/xiaonuo/production/service/IProductionConsumeService.java
  15. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/IProductionEnergyService.java
  16. 43 0
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionConsumeServiceImpl.java
  17. 154 13
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionEnergyServiceImpl.java
  18. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionReceiveServiceImpl.java
  19. 12 11
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionTargetServiceImpl.java
  20. 22 10
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWorkstopPlanServiceImpl.java
  21. 11 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWritePlanServiceImpl.java
  22. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/write/controller/WriteIndexController.java
  23. 6 6
      huimv-farm/src/main/java/vip/xiaonuo/write/entity/WriteThreshold.java
  24. 6 6
      huimv-farm/src/main/java/vip/xiaonuo/write/param/WriteThresholdAddParam.java
  25. 1 2
      huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteThresholdServiceImpl.java
  26. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteWarningServiceImpl.java
  27. 60 0
      huimv-farm/src/main/resources/mapper/ProductionWriteEnergyMapper.xml
  28. 3 5
      huimv-farm/src/main/resources/mapper/ProductionWriteRateMapper.xml
  29. 23 0
      huimv-farm/src/test/java/vip/xiaonuo/Bdest.java

+ 13 - 3
huimv-farm/src/main/java/vip/xiaonuo/erp/controller/SysBaseFilterInfoController.java

@@ -15,6 +15,7 @@ package vip.xiaonuo.erp.controller;
 import cn.dev33.satoken.stp.StpUtil;
 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;
@@ -59,15 +60,20 @@ public class SysBaseFilterInfoController {
     @ApiOperationSupport(order = 3)
     @ApiOperation("编辑用户查询选择")
     @PostMapping("/biz/basefilterinfo/edit")
-    public CommonResult<String> edit(@RequestBody  SysBaseFilterInfo sysBaseFilterInfo) {
+    public synchronized CommonResult<String> edit(@RequestBody  SysBaseFilterInfo sysBaseFilterInfo) {
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+//        String orgId = sysBaseFilterInfo.getOrgId();
+//        if (StringUtils.isBlank(orgId)){
+//            orgId= "0";
+//        }
+
         SysBaseFilterInfo one = sysBaseFilterInfoService.getOne(new QueryWrapper<SysBaseFilterInfo>()
                 .eq("module_type", sysBaseFilterInfo.getModuleType())
                 .eq("user_id", loginUser.getId()));
-        if (ObjectUtil.isEmpty(one)){
+        if (ObjectUtil.isEmpty(one)) {
             sysBaseFilterInfo.setUserId(loginUser.getId());
             sysBaseFilterInfoService.save(sysBaseFilterInfo);
-        }else {
+        } else {
             sysBaseFilterInfo.setId(one.getId());
             sysBaseFilterInfoService.updateById(sysBaseFilterInfo);
         }
@@ -79,6 +85,10 @@ public class SysBaseFilterInfoController {
     public CommonResult<SysBaseFilterInfo> listByUser(@RequestBody  SysBaseFilterInfo sysBaseFilterInfo) {
 //        SaBaseLoginUser loginUser = (SaBaseLoginUser)StpUtil.getSession().get("loginUser");
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+//        String orgId = sysBaseFilterInfo.getOrgId();
+//        if (StringUtils.isBlank(orgId)){
+//            orgId= "0";
+//        }
         SysBaseFilterInfo one = sysBaseFilterInfoService.getOne(new QueryWrapper<SysBaseFilterInfo>()
                 .eq("module_type", sysBaseFilterInfo.getModuleType())
                 .eq("user_id", loginUser.getId()));

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

@@ -310,5 +310,18 @@ public class MoneyBusinessServiceImpl extends ServiceImpl<MoneyBusinessMapper, M
         return String.format("%.2f", percentageChange);
     }
 
+    public static String calculateWanChenLv(double currentValue, double previousValue) {
+        // 处理零值情况
+        if (previousValue == 0) {
+            return "100";
+        }
+        // 计算同比变化率
+        double percentageChange = (currentValue /previousValue) * 100;
+        if (percentageChange >200){
+            return "100";
+        }
+        return String.format("%.2f", percentageChange);
+    }
+
 
 }

+ 43 - 2
huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionConsumeController.java

@@ -16,10 +16,11 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.production.entity.ProductionCheck;
 import vip.xiaonuo.production.entity.ProductionConsume;
-import vip.xiaonuo.production.param.ProductionCheckParam;
-import vip.xiaonuo.production.param.ProductionConsumeParam;
+import vip.xiaonuo.production.param.*;
 import vip.xiaonuo.production.service.IProductionConsumeService;
 
+import javax.validation.Valid;
+
 /**
  * <p>
  * 生产管控单耗 前端控制器
@@ -43,4 +44,44 @@ public class ProductionConsumeController {
     public CommonResult<Page<ProductionConsume>> getList(@RequestBody ProductionConsumeParam consumeParam) {
         return CommonResult.data(consumeService.getList(consumeParam));
     }
+
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加生产管控单耗")
+    @PostMapping("/biz/consume/add")
+    public CommonResult<String> add(@RequestBody @Valid ProductionConsumeAddParam productionConsumeAddParam) {
+        consumeService.add(productionConsumeAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑生产管控单耗
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑生产管控单耗")
+    @PostMapping("/biz/consume/edit")
+    public CommonResult<String> edit(@RequestBody @Valid ProductionConsumeEditParam productionConsumeEditParam) {
+        consumeService.edit(productionConsumeEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除生产管控单耗
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除生产管控单耗")
+    @PostMapping("/biz/consume/delete")
+    public CommonResult<String> delete(@RequestBody ProductionConsumeIdParam productionConsumeIdParamList) {
+        consumeService.delete(productionConsumeIdParamList);
+        return CommonResult.ok();
+    }
+
+
+
 }

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionEnergyController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.production.entity.ProductionConsume;
 import vip.xiaonuo.production.entity.ProductionEnergy;
+import vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo;
 import vip.xiaonuo.production.param.ProductionConsumeParam;
 import vip.xiaonuo.production.param.ProductionEnergyParam;
 import vip.xiaonuo.production.service.IProductionEnergyService;
@@ -44,7 +45,7 @@ public class ProductionEnergyController {
     @PostMapping("/production-energy/getList")
     @ApiOperationSupport(order = 1)
     @ApiOperation("生成管控能耗分析列表")
-    public CommonResult<List<ProductionEnergy>> getList(@RequestBody ProductionEnergyParam energyParam) {
+    public CommonResult<  List<ProductionWriteEnergyVo>> getList(@RequestBody ProductionEnergyParam energyParam) {
         return CommonResult.data(energyService.getList(energyParam));
     }
 }

+ 3 - 3
huimv-farm/src/main/java/vip/xiaonuo/production/controller/ProductionTargetController.java

@@ -50,20 +50,20 @@ public class ProductionTargetController {
 
     @PostMapping("/production-target/getListJiHuaShengChanDetail")
     @ApiOperationSupport(order = 1)
-    @ApiOperation("生产管控指卡实际,计划产量详细")
+    @ApiOperation(" 详细  实际,计划产量")
     public CommonResult<List<TargetListDetailVo>> getListDetail(@RequestBody ProductionParam productionParam) {
         return CommonResult.data(targetService.getListDetail(productionParam));
     }
 
     @PostMapping("/production-target/getListShouLvDetail")
     @ApiOperationSupport(order = 1)
-    @ApiOperation("生产管控指收率详细")
+    @ApiOperation(" 详细  收率")
     public CommonResult<List<TargetListDetailVo>> getListShouLvChengDetail(@RequestBody ProductionParam productionParam) {
         return CommonResult.data(targetService.getListShouLvChengDetail(productionParam));
     }
     @PostMapping("/production-target/getListNengHaoDetail")
     @ApiOperationSupport(order = 1)
-    @ApiOperation("生产管控指能耗详细")
+    @ApiOperation("详细 能耗")
     public CommonResult<List<TargetListDetailVo>> getListNengHaoDetail(@RequestBody ProductionParam productionParam) {
         return CommonResult.data(targetService.getListNengHaoDetail(productionParam));
     }

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

@@ -51,5 +51,6 @@ public class ProduceLocation implements Serializable {
      */
     @ApiModelProperty(value = "所选能耗列表",position = 4)
     private String energyId;
+    private Integer locationId;
 
 }

+ 150 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/entity/vo/ProductionWriteEnergyVo.java

@@ -0,0 +1,150 @@
+package vip.xiaonuo.production.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 车间能耗数据填报
+ * </p>
+ *
+ * @author author
+ * @since 2025-01-07
+ */
+@Data
+public class ProductionWriteEnergyVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    /**
+     * 车间id
+     */
+    @ApiModelProperty(value = "车间id",position =1 )
+    private Integer locationId;
+
+    /**
+     * 车间名称
+     */
+    @ApiModelProperty(value = "车间名称",position =2 )
+    private String locationName;
+
+    /**
+     * 电量
+     */
+    @ApiModelProperty(value = "电量",position = 3)
+    private String electricity;
+
+    /**
+     * 蒸汽
+     */
+    @ApiModelProperty(value = "蒸汽", position = 4)
+    private String zhengQi;
+
+    /**
+     * 氮气
+     */
+    @ApiModelProperty(value = "氮气",position = 5)
+    private String danQi;
+
+    /**
+     * 压缩空气
+     */
+    @ApiModelProperty(value = "压缩空气",position = 6)
+    private String yaSuo;
+
+    /**
+     * RO水总量
+     */
+    @ApiModelProperty(value = "RO水总量",position = 7)
+    private String roWater;
+
+    /**
+     * 自来水
+     */
+    @ApiModelProperty(value = "自来水",position = 8)
+    private String zlWater;
+
+    /**
+     * 循环水
+     */
+    @ApiModelProperty(value = "循环水",position = 9)
+    private String xhWater;
+
+    /**
+     * 7度水
+     */
+    @ApiModelProperty(value = "7度水",position = 10)
+    private String qdWater;
+
+    /**
+     * 负15度水
+     */
+    @ApiModelProperty(value = "负15度水",position = 11)
+    private String swdWater;
+
+    /**
+     * 负25度水
+     */
+    @ApiModelProperty(value = "负25度水",position = 12)
+    private String eswdWater;
+
+    /**
+     * 产量
+     */
+    @ApiModelProperty(value = "产量",position = 13)
+    private String produce;
+
+    /**
+     * 热水
+     */
+    @ApiModelProperty(value = "热水",position = 14)
+    private String reWater;
+
+    /**
+     * 低温水
+     */
+    @ApiModelProperty(value = "低温水",position = 15)
+    private String diwenWater;
+
+    /**
+     * 负15度乙二醇
+     */
+    @ApiModelProperty(value = "负15度乙二醇",position =16 )
+    private String fuSwdYierchun;
+
+    /**
+     * 负25度乙二醇
+     */
+    @ApiModelProperty(value = "负25度乙二醇",position = 17)
+    private String fuEswdYierchun;
+
+    /**
+     * 组织id
+     */
+    @ApiModelProperty(value = "组织id",position = 18)
+    private String orgId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间", position =19)
+    private String ymonth;
+
+
+    /**
+     * 公司名称
+     */
+    @ApiModelProperty(value = "公司名称",position = 20)
+    private String orgName;
+}

+ 25 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/mapper/ProductionWriteEnergyMapper.java

@@ -3,9 +3,11 @@ package vip.xiaonuo.production.mapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.production.entity.ProductionEnergy;
 import vip.xiaonuo.production.entity.ProductionWriteEnergy;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import vip.xiaonuo.production.entity.ProductionWritePlan;
+import vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo;
 import vip.xiaonuo.production.param.TargetListDetailVos;
 
 import java.util.List;
@@ -21,4 +23,27 @@ import java.util.List;
 public interface ProductionWriteEnergyMapper extends BaseMapper<ProductionWriteEnergy> {
 
     List<TargetListDetailVos> getListDetail(@Param(Constants.WRAPPER) QueryWrapper<ProductionWritePlan> wrapper);
+
+    TargetListDetailVos getCountDetaile( @Param(Constants.WRAPPER) QueryWrapper<ProductionWritePlan> wrapper);
+
+    List<ProductionWriteEnergyVo> selectYear(@Param(Constants.WRAPPER)QueryWrapper<ProductionEnergy> wrapper
+            , @Param(value = "electricity") String electricity
+            , @Param(value = "zhengQi") String zhengQi, @Param(value = "danQi") String danQi
+            , @Param(value = "yaSuo") String yaSuo, @Param(value = "roWater") String roWater
+            , @Param(value = "zlWater")String zlWater, @Param(value = "xhWater")String xhWater
+            , @Param(value = "qdWater")String qdWater, @Param(value = "swdWater") String swdWater
+            , @Param(value = "eswdWater") String eswdWater, @Param(value = "reWater") String reWater
+            , @Param(value = "diwenWater") String diwenWater, @Param(value = "fuSwdYierchun") String fuSwdYierchun
+            , @Param(value = "fuEswdYierchun") String fuEswdYierchun);
+
+
+    List<ProductionWriteEnergyVo> selectMonth(@Param(Constants.WRAPPER)QueryWrapper<ProductionEnergy> wrapper
+            , @Param(value = "electricity") String electricity
+            , @Param(value = "zhengQi") String zhengQi, @Param(value = "danQi") String danQi
+            , @Param(value = "yaSuo") String yaSuo, @Param(value = "roWater") String roWater
+            , @Param(value = "zlWater")String zlWater, @Param(value = "xhWater")String xhWater
+            , @Param(value = "qdWater")String qdWater, @Param(value = "swdWater") String swdWater
+            , @Param(value = "eswdWater") String eswdWater, @Param(value = "reWater") String reWater
+            , @Param(value = "diwenWater") String diwenWater, @Param(value = "fuSwdYierchun") String fuSwdYierchun
+            , @Param(value = "fuEswdYierchun") String fuEswdYierchun);
 }

+ 70 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeAddParam.java

@@ -0,0 +1,70 @@
+/*
+ * 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.production.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 生产管控单耗添加参数
+ *
+ * @author 1
+ * @date  2025/03/04 09:17
+ **/
+@Getter
+@Setter
+public class ProductionConsumeAddParam {
+
+    /** 物料产品 */
+    @ApiModelProperty(value = "物料产品", position = 2)
+    private String material;
+
+    /** 数量 */
+    @ApiModelProperty(value = "数量", position = 3)
+    private String weight;
+
+    /** 单耗 */
+    @ApiModelProperty(value = "单耗", position = 4)
+    private String consume;
+
+    /** 单价 */
+    @ApiModelProperty(value = "单价", position = 5)
+    private String price;
+
+    /** 单位收率 */
+    @ApiModelProperty(value = "单位收率", position = 6)
+    private String rate;
+
+    /** 比例 */
+    @ApiModelProperty(value = "比例", position = 7)
+    private String rank;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 9)
+    private String orgId;
+
+    /** 车间名称 */
+    @ApiModelProperty(value = "车间名称", position = 10)
+    private String locationName;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createTime;
+
+
+}

+ 71 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeEditParam.java

@@ -0,0 +1,71 @@
+/*
+ * 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.production.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 生产管控单耗编辑参数
+ *
+ * @author 1
+ * @date  2025/03/04 09:17
+ **/
+@Getter
+@Setter
+public class ProductionConsumeEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    /** 物料产品 */
+    @ApiModelProperty(value = "物料产品", position = 2)
+    private String material;
+
+    /** 数量 */
+    @ApiModelProperty(value = "数量", position = 3)
+    private String weight;
+
+    /** 单耗 */
+    @ApiModelProperty(value = "单耗", position = 4)
+    private String consume;
+
+    /** 单价 */
+    @ApiModelProperty(value = "单价", position = 5)
+    private String price;
+
+    /** 单位收率 */
+    @ApiModelProperty(value = "单位收率", position = 6)
+    private String rate;
+
+    /** 比例 */
+    @ApiModelProperty(value = "比例", position = 7)
+    private String rank;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 9)
+    private String orgId;
+
+    /** 车间名称 */
+    @ApiModelProperty(value = "车间名称", position = 10)
+    private String locationName;
+
+}

+ 35 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumeIdParam.java

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

+ 51 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/param/ProductionConsumePageParam.java

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

+ 6 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/param/TargetListDetailVo.java

@@ -8,5 +8,11 @@ import java.util.List;
 public class TargetListDetailVo {
 
     private String chenJian;
+    //实际产量
+    private String actualProduction;
+    //计划产量
+    private String productionPlan;
+    private String productionRate;
+
     private List<TargetListDetailVos> values;
 }

+ 35 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/service/IProductionConsumeService.java

@@ -3,6 +3,9 @@ package vip.xiaonuo.production.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import vip.xiaonuo.production.entity.ProductionConsume;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.production.param.ProductionConsumeAddParam;
+import vip.xiaonuo.production.param.ProductionConsumeEditParam;
+import vip.xiaonuo.production.param.ProductionConsumeIdParam;
 import vip.xiaonuo.production.param.ProductionConsumeParam;
 
 import java.util.List;
@@ -18,5 +21,37 @@ import java.util.List;
 public interface IProductionConsumeService extends IService<ProductionConsume> {
 
     Page<ProductionConsume> getList(ProductionConsumeParam consumeParam);
+    /**
+     * 添加生产管控单耗
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    void add(ProductionConsumeAddParam productionConsumeAddParam);
+
+    /**
+     * 编辑生产管控单耗
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    void edit(ProductionConsumeEditParam productionConsumeEditParam);
+
+    /**
+     * 删除生产管控单耗
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    void delete(ProductionConsumeIdParam productionConsumeIdParamList);
+
+    /**
+     * 获取生产管控单耗详情
+     *
+     * @author 1
+     * @date  2025/03/04 09:17
+     */
+    ProductionConsume detail(ProductionConsumeIdParam productionConsumeIdParam);
+
 
 }

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/service/IProductionEnergyService.java

@@ -2,6 +2,7 @@ package vip.xiaonuo.production.service;
 
 import vip.xiaonuo.production.entity.ProductionEnergy;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo;
 import vip.xiaonuo.production.param.ProductionEnergyParam;
 
 import java.util.List;
@@ -16,6 +17,6 @@ import java.util.List;
  */
 public interface IProductionEnergyService extends IService<ProductionEnergy> {
 
-    List<ProductionEnergy> getList(ProductionEnergyParam energyParam);
+    List<ProductionWriteEnergyVo> getList(ProductionEnergyParam energyParam);
 
 }

+ 43 - 0
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionConsumeServiceImpl.java

@@ -1,18 +1,27 @@
 package vip.xiaonuo.production.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
 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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.production.entity.ProductionConsume;
 import vip.xiaonuo.production.mapper.ProductionConsumeMapper;
+import vip.xiaonuo.production.param.ProductionConsumeAddParam;
+import vip.xiaonuo.production.param.ProductionConsumeEditParam;
+import vip.xiaonuo.production.param.ProductionConsumeIdParam;
 import vip.xiaonuo.production.param.ProductionConsumeParam;
 import vip.xiaonuo.production.service.IProductionConsumeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -47,4 +56,38 @@ public class ProductionConsumeServiceImpl extends ServiceImpl<ProductionConsumeM
         queryWrapper.orderByDesc("create_time");
         return consumeMapper.selectPage(page, queryWrapper);
     }
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ProductionConsumeAddParam productionConsumeAddParam) {
+        ProductionConsume productionConsume = BeanUtil.toBean(productionConsumeAddParam, ProductionConsume.class);
+        this.save(productionConsume);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ProductionConsumeEditParam productionConsumeEditParam) {
+        ProductionConsume productionConsume = this.queryEntity(productionConsumeEditParam.getId());
+        BeanUtil.copyProperties(productionConsumeEditParam, productionConsume);
+        this.updateById(productionConsume);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(ProductionConsumeIdParam productionConsumeIdParamList) {
+        // 执行删除
+        this.removeById(productionConsumeIdParamList.getId());
+    }
+
+    @Override
+    public ProductionConsume detail(ProductionConsumeIdParam productionConsumeIdParam) {
+        return this.queryEntity(productionConsumeIdParam.getId());
+    }
+
+    public ProductionConsume queryEntity(Integer id) {
+        ProductionConsume productionConsume = this.getById(id);
+        if(ObjectUtil.isEmpty(productionConsume)) {
+            throw new CommonException("生产管控单耗不存在,id值为:{}", id);
+        }
+        return productionConsume;
+    }
 }

+ 154 - 13
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionEnergyServiceImpl.java

@@ -1,16 +1,22 @@
 package vip.xiaonuo.production.service.impl;
 
 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.springframework.beans.factory.annotation.Autowired;
 import vip.xiaonuo.production.entity.ProductionEnergy;
+import vip.xiaonuo.production.entity.ProductionEnergyPrice;
+import vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo;
 import vip.xiaonuo.production.mapper.ProductionEnergyMapper;
+import vip.xiaonuo.production.mapper.ProductionEnergyPriceMapper;
+import vip.xiaonuo.production.mapper.ProductionWriteEnergyMapper;
 import vip.xiaonuo.production.param.ProductionEnergyParam;
 import vip.xiaonuo.production.service.IProductionEnergyService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -28,23 +34,158 @@ public class ProductionEnergyServiceImpl extends ServiceImpl<ProductionEnergyMap
     @Autowired
     private ProductionEnergyMapper energyMapper;
 
+//    @Override
+//    public List<ProductionEnergy> getList(ProductionEnergyParam energyParam) {
+//        String orgId = energyParam.getOrgId();
+//        Integer timeType = energyParam.getTimeType();
+//        String locationName = energyParam.getLocationName();
+//        QueryWrapper<ProductionEnergy> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
+//                .eq(StringUtils.isNotBlank(locationName), "location_name", locationName);
+//        queryWrapper.select(" IFNULL(sum(water),'0') water,IFNULL(sum(electricity),'0') electricity,IFNULL(sum(gas),'0') gas,create_time createTime");
+//        if (0 == timeType) {
+//            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
+//        } else {
+//            queryWrapper.ge("create_time", DateUtil.beginOfYear(new Date()));
+//            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
+//        }
+//        queryWrapper.orderByAsc("create_time");
+//        return energyMapper.selectList(queryWrapper);
+//    }
+
+    @Autowired
+    private ProductionEnergyPriceMapper priceMapper;
+    @Autowired
+    private ProductionWriteEnergyMapper writeEnergyMapper;
     @Override
-    public List<ProductionEnergy> getList(ProductionEnergyParam energyParam) {
+    public   List<ProductionWriteEnergyVo> getList(ProductionEnergyParam energyParam) {
         String orgId = energyParam.getOrgId();
         Integer timeType = energyParam.getTimeType();
-        String locationName = energyParam.getLocationName();
-        QueryWrapper<ProductionEnergy> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
-                .eq(StringUtils.isNotBlank(locationName), "location_name", locationName);
-        queryWrapper.select(" IFNULL(sum(water),'0') water,IFNULL(sum(electricity),'0') electricity,IFNULL(sum(gas),'0') gas,create_time createTime");
-        if (0 == timeType) {
-            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
-        } else {
-            queryWrapper.ge("create_time", DateUtil.beginOfYear(new Date()));
-            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
+        if (ObjectUtil.isEmpty(timeType) ){
+            timeType = 0;
+        }
+
+        QueryWrapper<ProductionEnergyPrice> priceQueryWrapper = new QueryWrapper<>();
+        priceQueryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
+        List<ProductionEnergyPrice> energyPrice = priceMapper.selectList(priceQueryWrapper);
+
+        ProductionEnergyPrice productionEnergyPrice = null;
+        if (ObjectUtil.isEmpty(energyPrice)){
+             productionEnergyPrice  =new ProductionEnergyPrice();
+                productionEnergyPrice.setElectricity("1");
+
+                productionEnergyPrice.setZhengQi("1");
+
+                productionEnergyPrice.setDanQi("1");
+
+                productionEnergyPrice.setYaSuo("1");
+
+                productionEnergyPrice.setRoWater("1");
+
+                productionEnergyPrice.setZlWater("1");
+
+                productionEnergyPrice.setXhWater("1");
+
+                productionEnergyPrice.setQdWater("1");
+
+                productionEnergyPrice.setSwdWater("1");
+
+                productionEnergyPrice.setEswdWater("1");
+
+                productionEnergyPrice.setReWater("1");
+
+                productionEnergyPrice.setDiwenWater("1");
+
+                productionEnergyPrice.setFuSwdYierchun("1");
+
+                productionEnergyPrice.setFuEswdYierchun("1");
+
+        }
+        if (ObjectUtil.isNotEmpty(energyPrice)) {
+             productionEnergyPrice = energyPrice.get(0);
+            if ("".equals(productionEnergyPrice.getElectricity())) {
+                productionEnergyPrice.setElectricity("1");
+            }
+            if ("".equals(productionEnergyPrice.getZhengQi())) {
+                productionEnergyPrice.setZhengQi("1");
+            }
+            if ("".equals(productionEnergyPrice.getDanQi())) {
+                productionEnergyPrice.setDanQi("1");
+            }
+            if ("".equals(productionEnergyPrice.getYaSuo())) {
+                productionEnergyPrice.setYaSuo("1");
+            }
+            if ("".equals(productionEnergyPrice.getRoWater())) {
+                productionEnergyPrice.setRoWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getZlWater())) {
+                productionEnergyPrice.setZlWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getXhWater())) {
+                productionEnergyPrice.setXhWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getQdWater())) {
+                productionEnergyPrice.setQdWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getSwdWater())) {
+                productionEnergyPrice.setSwdWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getEswdWater())) {
+                productionEnergyPrice.setEswdWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getReWater())) {
+                productionEnergyPrice.setReWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getDiwenWater())) {
+                productionEnergyPrice.setDiwenWater("1");
+            }
+            if ("".equals(productionEnergyPrice.getFuSwdYierchun())) {
+                productionEnergyPrice.setFuSwdYierchun("1");
+            }
+            if ("".equals(productionEnergyPrice.getFuEswdYierchun())) {
+                productionEnergyPrice.setFuEswdYierchun("1");
+            }
         }
-        queryWrapper.orderByAsc("create_time");
-        return energyMapper.selectList(queryWrapper);
+        QueryWrapper<ProductionEnergy> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
+        wrapper.groupBy("ymonth");
+        List<ProductionWriteEnergyVo> list ;
+        if (timeType == 0){
+          list =  writeEnergyMapper.selectYear(wrapper,
+                    productionEnergyPrice.getElectricity() ,
+                    productionEnergyPrice.getZhengQi(),
+                    productionEnergyPrice.getDanQi(),
+                    productionEnergyPrice.getYaSuo(),
+                    productionEnergyPrice.getRoWater(),
+                    productionEnergyPrice.getZlWater(),
+                    productionEnergyPrice.getXhWater(),
+                    productionEnergyPrice.getQdWater(),
+                    productionEnergyPrice.getSwdWater(),
+                    productionEnergyPrice.getEswdWater(),
+                    productionEnergyPrice.getReWater(),
+                    productionEnergyPrice.getDiwenWater(),
+                    productionEnergyPrice.getFuSwdYierchun(),
+                    productionEnergyPrice.getFuEswdYierchun());
+        }else {
+            list =  writeEnergyMapper.selectMonth(wrapper,
+                    productionEnergyPrice.getElectricity() ,
+                    productionEnergyPrice.getZhengQi(),
+                    productionEnergyPrice.getDanQi(),
+                    productionEnergyPrice.getYaSuo(),
+                    productionEnergyPrice.getRoWater(),
+                    productionEnergyPrice.getZlWater(),
+                    productionEnergyPrice.getXhWater(),
+                    productionEnergyPrice.getQdWater(),
+                    productionEnergyPrice.getSwdWater(),
+                    productionEnergyPrice.getEswdWater(),
+                    productionEnergyPrice.getReWater(),
+                    productionEnergyPrice.getDiwenWater(),
+                    productionEnergyPrice.getFuSwdYierchun(),
+                    productionEnergyPrice.getFuEswdYierchun());
+        }
+        return list;
+
+
     }
 
 }

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

@@ -44,7 +44,7 @@ public class ProductionReceiveServiceImpl extends ServiceImpl<ProductionReceiveM
         queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
                 .eq(StringUtils.isNotBlank(locationName), "location_name", locationName);
         if (StringUtils.isNotBlank(produceName)) {
-            queryWrapper1.like("produce_name", produceName);
+            queryWrapper1.like("production_name", produceName);
         }
         queryWrapper1.select(" convert(IFNULL(avg(production_rate),'0'),decimal(10,2)) productionRate, create_time createTime");
         if (0 == timeType) {

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

@@ -31,7 +31,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import static vip.xiaonuo.money.service.impl.MoneyBusinessServiceImpl.calculateYOYChange;
+import static vip.xiaonuo.money.service.impl.MoneyBusinessServiceImpl.*;
 
 /**
  * <p>
@@ -79,10 +79,11 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
         SysBaseFilterInfo sysBaseFilterInfo = baseFilterInfoMapper.selectOne(baseFilterInfoQueryWrapper);
         String type = "";
         if (ObjectUtil.isEmpty(sysBaseFilterInfo)) {
+             sysBaseFilterInfo = new SysBaseFilterInfo();
             sysBaseFilterInfo.setFilter("0");
             sysBaseFilterInfo.setUserId(loginUser.getId());
             sysBaseFilterInfo.setModuleType("produce");
-            sysBaseFilterInfo.setOrgId("0");
+            sysBaseFilterInfo.setOrgId(orgId);
             baseFilterInfoMapper.insert(sysBaseFilterInfo);
             type = "0";
         } else {
@@ -260,16 +261,17 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
             TargetListDetailVo targetListDetailVo = new TargetListDetailVo();
             targetListDetailVo.setChenJian(productionLocationVo.getLocationName());
             List<TargetListDetailVos> listDetail = energyMapper.getListDetail(wrapper);
+            wrapper.clear();
+            wrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
+            wrapper.eq("location_id",productionLocationVo.getLocationId());
+            TargetListDetailVos listDetailVo =  energyMapper.getCountDetaile(wrapper);
+            targetListDetailVo.setActualProduction(listDetailVo.getActualProduction());
+            targetListDetailVo.setProductionPlan(listDetailVo.getProductionPlan());
+            targetListDetailVo.setProductionRate(calculateWanChenLv(Double.parseDouble(listDetailVo.getActualProduction()),Double.parseDouble(listDetailVo.getProductionPlan())));
+
             if (ObjectUtil.isNotEmpty(listDetail)){
                 for (TargetListDetailVos listDetailVos : listDetail) {
-                    if (StringUtils.isBlank(listDetailVos.getActualProduction()) || "0".equals(listDetailVos.getActualProduction())){
-                        listDetailVos.setActualProduction("0%");
-                    }
-                    else if (StringUtils.isBlank(listDetailVos.getProductionPlan()) || "0".equals(listDetailVos.getProductionPlan())){
-                        listDetailVos.setActualProduction("100%");
-                    }else {
-                        listDetailVos.setActualProduction(calculateYOYChange(Double.parseDouble(listDetailVos.getProductionPlan()),Double.parseDouble(listDetailVos.getProductionPlan())));
-                    }
+                  listDetailVos.setProductionRate(calculateWanChenLv(Double.parseDouble(listDetailVos.getActualProduction()),Double.parseDouble(listDetailVos.getProductionPlan())));
                 }
             }
             targetListDetailVo.setValues(listDetail);
@@ -385,7 +387,6 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
                     productionEnergyPrice.getFuEswdYierchun()
                     ));
             targetListDetailVos.add(targetListDetailVo);
-
             }
             return targetListDetailVos;
     }

+ 22 - 10
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWorkstopPlanServiceImpl.java

@@ -298,21 +298,33 @@ public class ProductionWorkstopPlanServiceImpl extends ServiceImpl<ProductionWor
         }
         return planMapperTop;
     }
+    @Autowired
+    private ProduceLocationMapper produceLocationMapper;
 
     @Override
     public List<ProductionLocationVo> listLocation(ProductionVoParam voParam) {
         String orgId = voParam.getOrgId();
-        QueryWrapper<ProductionWorkstopPlan> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).groupBy("location_id");
-        List<ProductionWorkstopPlan> workstopPlans = planMapper.selectList(queryWrapper);
-        List<ProductionLocationVo> list = new ArrayList<>();
-        for (ProductionWorkstopPlan workstopPlan : workstopPlans) {
-            ProductionLocationVo vo = new ProductionLocationVo();
-            vo.setLocationId(workstopPlan.getLocationId());
-            vo.setLocationName(workstopPlan.getLocationName());
-            vo.setOrgId(workstopPlan.getOrgId());
-            list.add(vo);
+        List<ProduceLocation> produceLocations = produceLocationMapper.selectList(new QueryWrapper<ProduceLocation>().eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("location_id"));
+       List<ProductionLocationVo> list =new ArrayList();
+        for (ProduceLocation produceLocation : produceLocations) {
+            ProductionLocationVo productionLocationVo = new ProductionLocationVo();
+            productionLocationVo.setLocationId(produceLocation.getLocationId() +"");
+            productionLocationVo.setLocationName(produceLocation.getLocationName());
+            productionLocationVo.setOrgId(produceLocation.getOrgId());
+            list.add(productionLocationVo);
         }
+
+//        QueryWrapper<ProductionWorkstopPlan> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).groupBy("location_id");
+//        List<ProductionWorkstopPlan> workstopPlans = planMapper.selectList(queryWrapper);
+//        List<ProductionLocationVo> list = new ArrayList<>();
+//        for (ProductionWorkstopPlan workstopPlan : workstopPlans) {
+//            ProductionLocationVo vo = new ProductionLocationVo();
+//            vo.setLocationId(workstopPlan.getLocationId());
+//            vo.setLocationName(workstopPlan.getLocationName());
+//            vo.setOrgId(workstopPlan.getOrgId());
+//            list.add(vo);
+//        }
         return list;
     }
 

+ 11 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWritePlanServiceImpl.java

@@ -125,7 +125,17 @@ public class ProductionWritePlanServiceImpl extends ServiceImpl<ProductionWriteP
         } else {
             queryWrapper.eq("org_id", orgId);
         }
-        return filterInfoMapper.selectOne(queryWrapper);
+        SysBaseFilterInfo sysBaseFilterInfo = filterInfoMapper.selectOne(queryWrapper);
+        if (ObjectUtil.isEmpty(sysBaseFilterInfo)){
+            sysBaseFilterInfo = new SysBaseFilterInfo();
+            sysBaseFilterInfo.setUserId(loginUser.getId());
+            sysBaseFilterInfo.setFilter("0");
+            sysBaseFilterInfo.setOrgId("0");
+            sysBaseFilterInfo.setModuleType("produce");
+            filterInfoMapper.insert(sysBaseFilterInfo);
+            return sysBaseFilterInfo;
+        }
+        return sysBaseFilterInfo;
     }
 
 }

+ 2 - 2
huimv-farm/src/main/java/vip/xiaonuo/write/controller/WriteIndexController.java

@@ -42,8 +42,8 @@ public class WriteIndexController {
     @ApiOperation("通用预警指标列表")
     @PostMapping("/write-index/list")
     public CommonResult page(@RequestBody Map<String, String> paramsMap) {
-        String orgId = paramsMap.get("orgId");
+//        String orgId = paramsMap.get("orgId");
         String type = paramsMap.get("type");
-        return CommonResult.data(indexService.list(new QueryWrapper<WriteIndex>().eq("org_id", orgId).eq("module_type", Integer.parseInt(type))));
+        return CommonResult.data(indexService.list(new QueryWrapper<WriteIndex>().eq("module_type", Integer.parseInt(type))));
     }
 }

+ 6 - 6
huimv-farm/src/main/java/vip/xiaonuo/write/entity/WriteThreshold.java

@@ -33,7 +33,7 @@ public class WriteThreshold implements Serializable {
      * 模块划分0财务1人事2采购3仓库4风控5生产6销售7质量
      */
     @ApiModelProperty(value = "模块划分0财务1人事2采购3仓库4风控5生产6销售7质量",position =1 )
-    private Integer type;
+    private Integer typeS;
 
     /**
      * 处理人名字
@@ -45,19 +45,19 @@ public class WriteThreshold implements Serializable {
      * 处理人id
      */
     @ApiModelProperty(value = "处理人id",position = 3)
-    private Integer userId;
+    private String userId;
 
     /**
      * 预警等级0普通 1重要
      */
     @ApiModelProperty(value = " 预警等级0普通 1重要",position =4 )
-    private Integer level;
+    private Integer levelS;
 
     /**
      * 指标
      */
     @ApiModelProperty(value = "指标",position = 5)
-    private String index;
+    private String indexS;
 
     /**
      * 组织id
@@ -70,13 +70,13 @@ public class WriteThreshold implements Serializable {
      * 指标
      */
     @ApiModelProperty(value = "指标id",position = 7)
-    private String indexId;
+    private Integer indexId;
 
     /**
      * 指标
      */
     @ApiModelProperty(value = "阈值",position = 8)
-    private String values;
+    private String valuesS;
 
     @ApiModelProperty(value = "0为小于等于 1为大于",position = 9)
     private Integer isTrue;

+ 6 - 6
huimv-farm/src/main/java/vip/xiaonuo/write/param/WriteThresholdAddParam.java

@@ -25,7 +25,7 @@ public class WriteThresholdAddParam  {
      * 模块划分0财务1人事2采购3仓库4风控5生产6销售7质量
      */
     @ApiModelProperty(value = "模块划分0财务1人事2采购3仓库4风控5生产6销售7质量",position =1 )
-    private Integer type;
+    private Integer typeS;
 
     /**
      * 处理人名字
@@ -37,19 +37,19 @@ public class WriteThresholdAddParam  {
      * 处理人id
      */
     @ApiModelProperty(value = "处理人id",position = 3)
-    private Integer userId;
+    private String userId;
 
     /**
      * 预警等级0普通 1重要
      */
     @ApiModelProperty(value = " 预警等级0普通 1重要",position =4 )
-    private Integer level;
+    private Integer levelS;
 
     /**
      * 指标
      */
     @ApiModelProperty(value = "指标",position = 5)
-    private String index;
+    private String indexS;
 
     /**
      * 组织id
@@ -61,13 +61,13 @@ public class WriteThresholdAddParam  {
      * 指标
      */
     @ApiModelProperty(value = "指标id",position = 7)
-    private String indexId;
+    private Integer indexId;
 
     /**
      * 指标
      */
     @ApiModelProperty(value = "阈值",position = 8)
-    private String values;
+    private String valuesS;
 
     @ApiModelProperty(value = "0为小于等于 1为大于",position = 9)
     private Integer isTrue;

+ 1 - 2
huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteThresholdServiceImpl.java

@@ -76,9 +76,8 @@ public class WriteThresholdServiceImpl extends ServiceImpl<WriteThresholdMapper,
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
         String userId = loginUser.getId();
         SysUser sysUser = sysUserMapper.selectById(userId);
-        String createUser = sysUser.getCreateUser();
         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("CREATE_USER", createUser);
+        queryWrapper.eq("CREATE_USER", sysUser.getId());
         List<SysUser> sysUsers = sysUserMapper.selectList(queryWrapper);
         sysUsers.add(sysUser);
         return sysUsers;

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteWarningServiceImpl.java

@@ -42,7 +42,7 @@ public class WriteWarningServiceImpl extends ServiceImpl<WriteWarningMapper, Wri
         if (0 == timeType) {
             Calendar calendar = Calendar.getInstance();
             calendar.set(Calendar.DAY_OF_MONTH, -7);
-            queryWrapper.ge("warningDate", calendar.getTime());
+            queryWrapper.ge("warning_date", calendar.getTime());
         }
         return warningMapper.selectPage(page, queryWrapper);
     }

+ 60 - 0
huimv-farm/src/main/resources/mapper/ProductionWriteEnergyMapper.xml

@@ -11,4 +11,64 @@
   FROM  `production_workstop_plan` mb
         ${ew.customSqlSegment}
     </select>
+    <select id="getCountDetaile" resultType="vip.xiaonuo.production.param.TargetListDetailVos">
+
+           SELECT
+ ROUND(IFNULL(SUM(actual_production), 0), 2)  actual_production ,
+ ROUND(IFNULL(  (SELECT SUM(production_plan)  production_plan   FROM  `production_write_plan`     ${ew.customSqlSegment} ) , 0), 2)   production_plan
+  FROM  `production_workstop_plan`
+        ${ew.customSqlSegment}
+
+
+
+    </select>
+    <select id="selectYear" resultType="vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo">
+        SELECT ROUND(IFNULL(SUM(electricity* ${electricity} ),0),2) electricity ,
+        ROUND(IFNULL(SUM(zheng_qi* ${zhengQi}),0),2)zheng_qi   ,
+        ROUND(IFNULL(SUM(dan_qi* ${danQi}),0),2)dan_qi ,
+        ROUND(IFNULL(SUM(ya_suo* ${yaSuo}),0),2) ya_suo,
+        ROUND(IFNULL(SUM(ro_water* ${roWater}),0),2)ro_water ,
+        ROUND(IFNULL(SUM(zl_water* ${zlWater}),0),2) zl_water,
+        ROUND(IFNULL(SUM(xh_water* ${xhWater}),0),2)xh_water ,
+        ROUND(IFNULL(SUM(qd_water* ${qdWater}),0),2) qd_water,
+        ROUND(IFNULL(SUM(swd_water* ${swdWater}),0),2)  swd_water,
+        ROUND(IFNULL(SUM(eswd_water* ${eswdWater}),0),2) eswd_water ,
+
+        ROUND(IFNULL(SUM(re_water* ${reWater}),0),2) re_water,
+
+        ROUND(IFNULL(SUM(diwen_water* ${diwenWater}),0),2) diwen_water,
+        ROUND(IFNULL(SUM(fu_swd_yierchun* ${fuSwdYierchun} ),0),2) fu_swd_yierchun ,
+        ROUND(IFNULL(SUM(fu_eswd_yierchun* ${fuEswdYierchun}),0),2)  fu_eswd_yierchun,
+        DATE_FORMAT(create_time, '%Y') ymonth
+
+         FROM `production_write_energy`
+
+         ${ew.customSqlSegment}
+
+
+    </select>
+    <select id="selectMonth" resultType="vip.xiaonuo.production.entity.vo.ProductionWriteEnergyVo">
+
+          SELECT ROUND(IFNULL(SUM(electricity* ${electricity} ),0),2) electricity ,
+        ROUND(IFNULL(SUM(zheng_qi* ${zhengQi}),0),2)zheng_qi   ,
+        ROUND(IFNULL(SUM(dan_qi* ${danQi}),0),2)dan_qi ,
+        ROUND(IFNULL(SUM(ya_suo* ${yaSuo}),0),2) ya_suo,
+        ROUND(IFNULL(SUM(ro_water* ${roWater}),0),2)ro_water ,
+        ROUND(IFNULL(SUM(zl_water* ${zlWater}),0),2) zl_water,
+        ROUND(IFNULL(SUM(xh_water* ${xhWater}),0),2)xh_water ,
+        ROUND(IFNULL(SUM(qd_water* ${qdWater}),0),2) qd_water,
+        ROUND(IFNULL(SUM(swd_water* ${swdWater}),0),2)  swd_water,
+        ROUND(IFNULL(SUM(eswd_water* ${eswdWater}),0),2) eswd_water ,
+
+        ROUND(IFNULL(SUM(re_water* ${reWater}),0),2) re_water,
+
+        ROUND(IFNULL(SUM(diwen_water* ${diwenWater}),0),2) diwen_water,
+        ROUND(IFNULL(SUM(fu_swd_yierchun* ${fuSwdYierchun} ),0),2) fu_swd_yierchun ,
+        ROUND(IFNULL(SUM(fu_eswd_yierchun* ${fuEswdYierchun}),0),2)  fu_eswd_yierchun,
+        DATE_FORMAT(create_time, '%Y-%m') ymonth
+
+         FROM `production_write_energy`
+
+         ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 3 - 5
huimv-farm/src/main/resources/mapper/ProductionWriteRateMapper.xml

@@ -9,7 +9,6 @@
          ROUND(IFNULL(AVG(production_rate), 0), 2)  productionRate ,  DATE_FORMAT(create_time, '%Y-%m') ymonth
 
           FROM `production_write_rate`
-        GROUP BY ymonth
           ${ew.customSqlSegment}
     </select>
     <select id="getListNengHaoDetail" resultType="vip.xiaonuo.production.param.TargetListDetailVos">
@@ -19,13 +18,12 @@
          ROUND(IFNULL(  (
           electricity * ${electricity} + zheng_qi  * ${zhengQi} +dan_qi * ${danQi}
           +ya_Suo* ${yaSuo}  +ro_water* ${roWater} +zl_water* ${zlWater}
-           +xh_water* ${xhWater} +qd_water* ${qdWater} +swd_water* ${swdWater} +eswd_water* ${eswdWater} +produce
-          * ${produce} +re_water
-          * ${reWater} +diwen_water* ${diwenWater} +fu_swd_yierchun* ${fuSwdYierchun} + fu_eswd_yierchun* ${fuEswdYierchun}
+           +xh_water* ${xhWater} +qd_water* ${qdWater} +swd_water* ${swdWater} +eswd_water* ${eswdWater}
+           +re_water  * ${reWater} +diwen_water* ${diwenWater} +fu_swd_yierchun* ${fuSwdYierchun} + fu_eswd_yierchun* ${fuEswdYierchun}
           ), 0), 2)  productionRate ,  DATE_FORMAT(create_time, '%Y-%m') ymonth
 
           FROM  `production_write_energy`
-        GROUP BY ymonth
+
           ${ew.customSqlSegment}
 
     </select>

+ 23 - 0
huimv-farm/src/test/java/vip/xiaonuo/Bdest.java

@@ -23,11 +23,15 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.web.client.RestTemplate;
+import vip.xiaonuo.erp.entity.ErpBdDepartment;
 import vip.xiaonuo.erp.entity.ErpBdMaterial;
 import vip.xiaonuo.erp.entity.ErpBdOrg;
 import vip.xiaonuo.erp.entity.voucher.ErpMaterial;
+import vip.xiaonuo.erp.mapper.ErpBdDepartmentMapper;
 import vip.xiaonuo.erp.mapper.ErpBdMaterialMapper;
 import vip.xiaonuo.erp.mapper.ErpBdOrgMapper;
+import vip.xiaonuo.production.entity.ProduceLocation;
+import vip.xiaonuo.production.mapper.ProduceLocationMapper;
 
 import java.util.List;
 
@@ -48,6 +52,25 @@ public class Bdest {
     @Autowired
     private ErpBdMaterialMapper erpBdMaterialMapper;
 
+    @Autowired
+    private ErpBdDepartmentMapper erpBdDepartmentMapper;
+    @Autowired
+    private ProduceLocationMapper produceLocationMapper;
+    //获取车间
+    @Test
+    public void  test2(){
+        List<ErpBdDepartment> erpBdDepartments = erpBdDepartmentMapper.selectList(new QueryWrapper<ErpBdDepartment>().like("fname","车间"));
+        for (ErpBdDepartment erpBdDepartment : erpBdDepartments) {
+            ProduceLocation produceLocation = new ProduceLocation();
+            produceLocation.setOrgId(erpBdDepartment.getOrgId());
+            produceLocation.setLocationName(erpBdDepartment.getFname());
+            produceLocation.setOrgName(erpBdDepartment.getFfullname());
+            produceLocation.setLocationId(erpBdDepartment.getFdeptid());
+            produceLocationMapper.insert(produceLocation);
+        }
+    }
+
+
     @Test
     public void  test1(){
         ResponseEntity<List<ErpMaterial>> response = restTemplate.exchange(