浏览代码

解决印花机晶统计数据

wukai 6 天之前
父节点
当前提交
3a1c7e70cf

+ 1 - 1
jjt-admin/src/test/java/com/jjt/task/YhjTaskTest.java

@@ -56,7 +56,7 @@ public class YhjTaskTest {
 
     @Test
     public void day(){
-        String st = "2025-07-10";
+        String st = "2025-07-11";
         LocalDate localDate = LocalDate.parse(st);
         dayService.day(localDate);
     }

+ 20 - 33
jjt-biz/src/main/java/com/jjt/calc/controller/TwinCalcDayYhjController.java

@@ -1,28 +1,21 @@
 package com.jjt.calc.controller;
 
-import java.util.List;
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.jjt.calc.domain.TwinCalcDayYhj;
+import com.jjt.calc.service.ITwinCalcDayYhjService;
 import com.jjt.common.annotation.Log;
 import com.jjt.common.core.controller.BaseController;
 import com.jjt.common.core.domain.AjaxResult;
+import com.jjt.common.core.page.TableDataInfo;
 import com.jjt.common.enums.BusinessType;
-import com.jjt.calc.domain.TwinCalcDayYhj;
-import com.jjt.calc.service.ITwinCalcDayYhjService;
 import com.jjt.common.utils.poi.ExcelUtil;
-import com.jjt.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 印花机日统计数据Controller
@@ -30,10 +23,10 @@ import com.jjt.common.core.page.TableDataInfo;
  * @author wukai
  * @date 2025-03-07
  */
-@Api(tags="印花机日统计数据")
+@Api(tags = "印花机日统计数据")
 @RestController
 @RequestMapping("/calc/dayYhj")
-public class TwinCalcDayYhjController extends BaseController{
+public class TwinCalcDayYhjController extends BaseController {
     @Resource
     private ITwinCalcDayYhjService twinCalcDayYhjService;
 
@@ -43,8 +36,7 @@ public class TwinCalcDayYhjController extends BaseController{
     @ApiOperation("查询印花机日统计数据列表")
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TwinCalcDayYhj twinCalcDayYhj)
-    {
+    public TableDataInfo list(TwinCalcDayYhj twinCalcDayYhj) {
         startPage();
         List<TwinCalcDayYhj> list = twinCalcDayYhjService.selectTwinCalcDayYhjList(twinCalcDayYhj);
         return getDataTable(list);
@@ -57,8 +49,7 @@ public class TwinCalcDayYhjController extends BaseController{
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:export')")
     @Log(title = "印花机日统计数据", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, TwinCalcDayYhj twinCalcDayYhj)
-    {
+    public void export(HttpServletResponse response, TwinCalcDayYhj twinCalcDayYhj) {
         List<TwinCalcDayYhj> list = twinCalcDayYhjService.selectTwinCalcDayYhjList(twinCalcDayYhj);
         ExcelUtil<TwinCalcDayYhj> util = new ExcelUtil<TwinCalcDayYhj>(TwinCalcDayYhj.class);
         util.exportExcel(response, list, "印花机日统计数据数据");
@@ -70,8 +61,7 @@ public class TwinCalcDayYhjController extends BaseController{
     @ApiOperation("获取印花机日统计数据详细信息")
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(twinCalcDayYhjService.selectTwinCalcDayYhjById(id));
     }
 
@@ -82,8 +72,7 @@ public class TwinCalcDayYhjController extends BaseController{
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:add')")
     @Log(title = "印花机日统计数据", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody TwinCalcDayYhj twinCalcDayYhj)
-    {
+    public AjaxResult add(@RequestBody TwinCalcDayYhj twinCalcDayYhj) {
         return toAjax(twinCalcDayYhjService.insertTwinCalcDayYhj(twinCalcDayYhj));
     }
 
@@ -94,8 +83,7 @@ public class TwinCalcDayYhjController extends BaseController{
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:edit')")
     @Log(title = "印花机日统计数据", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody TwinCalcDayYhj twinCalcDayYhj)
-    {
+    public AjaxResult edit(@RequestBody TwinCalcDayYhj twinCalcDayYhj) {
         return toAjax(twinCalcDayYhjService.updateTwinCalcDayYhj(twinCalcDayYhj));
     }
 
@@ -105,9 +93,8 @@ public class TwinCalcDayYhjController extends BaseController{
     @ApiOperation("删除印花机日统计数据")
     @PreAuthorize("@ss.hasPermi('calc:dayYhj:remove')")
     @Log(title = "印花机日统计数据", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(twinCalcDayYhjService.deleteTwinCalcDayYhjByIds(ids));
     }
 }

+ 5 - 3
jjt-biz/src/main/java/com/jjt/calc/domain/TwinCalcDayYhj.java

@@ -9,7 +9,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.Date;
 
 /**
@@ -103,10 +102,13 @@ public class TwinCalcDayYhj extends BaseEntity {
 
     public void setLength(Integer lengthA, Integer lengthB) {
         this.lengthA = lengthA == null ? 0 : lengthA;
-        this.weightA = BigDecimal.valueOf(this.lengthA).divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP);
         this.lengthB = lengthB == null ? 0 : lengthB;
-        this.weightB = BigDecimal.valueOf(this.lengthB).divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP);
         this.length = this.lengthA + this.lengthB;
+    }
+
+    public void setWeight(BigDecimal weightA, BigDecimal weightB) {
+        this.weightA = weightA == null ? BigDecimal.ZERO : weightA;
+        this.weightB = weightB == null ? BigDecimal.ZERO : weightB;
         this.weight = this.weightA.add(this.weightB);
     }
 

+ 4 - 2
jjt-biz/src/main/java/com/jjt/calc/service/impl/TwinCalcDayYhjServiceImpl.java

@@ -130,11 +130,13 @@ public class TwinCalcDayYhjServiceImpl implements ITwinCalcDayYhjService {
         Map<Integer, TwinCalcDayYhj> resultMap = new HashMap<>(16);
         for (Integer deviceId : calcMap.keySet()) {
             //按班组统计
-            Map<String, Integer> calcTeam = calcMap.get(deviceId).stream().collect(Collectors.groupingBy(TwinCalcHourYhj::getTeam, Collectors.reducing(0, TwinCalcHourYhj::getLength, Integer::sum)));
+            Map<String, Integer> calcLength = calcMap.get(deviceId).stream().collect(Collectors.groupingBy(TwinCalcHourYhj::getTeam, Collectors.reducing(0, TwinCalcHourYhj::getLength, Integer::sum)));
+            Map<String, BigDecimal> calcWeight = calcMap.get(deviceId).stream().collect(Collectors.groupingBy(TwinCalcHourYhj::getTeam, Collectors.mapping(item -> item.getWeight() == null ? BigDecimal.ZERO : item.getWeight(), Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
             TwinCalcDayYhj calc = new TwinCalcDayYhj();
             calc.setDeviceId(deviceId);
             calc.setTime(DateUtils.toDate(localDate));
-            calc.setLength(calcTeam.get("A"), calcTeam.get("B"));
+            calc.setLength(calcLength.get("A"), calcLength.get("B"));
+            calc.setWeight(calcWeight.get("A"), calcWeight.get("B"));
             resultMap.put(deviceId, calc);
         }
 

+ 1 - 0
jjt-biz/src/main/resources/mapper/calc/TwinCalcDayYhjMapper.xml

@@ -44,6 +44,7 @@
             <if test="deviceId != null ">and DEVICE_ID = #{deviceId}</if>
             <if test="dayLength != null ">and DAY_LENGTH = #{dayLength}</if>
             <if test="dayWeight != null ">and DAY_WEIGHT = #{dayWeight}</if>
+            <if test="time != null ">and TIME = #{time}</if>
             <if test="params.start != null and params.start != ''">
                 and TIME >= #{params.start}
             </if>