|
@@ -1,11 +1,24 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import com.rongwei.bscommon.sys.service.ZhcxProjectDeviceIndicatorService;
|
|
|
import com.rongwei.bsentity.domain.ZhcxPmqManagementDo;
|
|
|
import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDao;
|
|
|
import com.rongwei.bscommon.sys.service.ZhcxPmqManagementService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.rongwei.bsentity.domain.ZhcxProjectDeviceIndicatorDo;
|
|
|
+import com.rongwei.bsentity.dto.project.indicator.DelPhysicalParam;
|
|
|
+import com.rongwei.bsentity.vo.check.LargeScreenCheckVo;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 三单管理(Integrated Management of Production Orders, Material Documents, and Quality Records in Manufacturing) 服务实现类
|
|
@@ -14,7 +27,61 @@ import org.springframework.stereotype.Service;
|
|
|
* @author wm
|
|
|
* @since 2024-10-30
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class ZhcxPmqManagementServiceImpl extends ServiceImpl<ZhcxPmqManagementDao, ZhcxPmqManagementDo> implements ZhcxPmqManagementService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ZhcxProjectDeviceIndicatorService projectDeviceIndicatorService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void largeScreenData() {
|
|
|
+ // 删除大屏试车数据
|
|
|
+ DelPhysicalParam param = DelPhysicalParam.builder()
|
|
|
+ .type("pmq_management")
|
|
|
+ .build();
|
|
|
+ projectDeviceIndicatorService.delPhysical(param);
|
|
|
+
|
|
|
+ // 获取三单数据
|
|
|
+ List<LargeScreenCheckVo> list =baseMapper.getLargeScreenData();
|
|
|
+ log.info("获取的大屏试车数据源:{}",list.size());
|
|
|
+ List<ZhcxProjectDeviceIndicatorDo> resultList = new ArrayList<>();
|
|
|
+ for (LargeScreenCheckVo largeScreenCheckVo : list) {
|
|
|
+ ZhcxProjectDeviceIndicatorDo indicator = new ZhcxProjectDeviceIndicatorDo();
|
|
|
+ indicator.setId(SecurityUtil.getUUID());
|
|
|
+ indicator.setDate(new Date());
|
|
|
+ indicator.setDeleted("0");
|
|
|
+ indicator.setProjectid(largeScreenCheckVo.getProjectid());
|
|
|
+ indicator.setProjectcode(largeScreenCheckVo.getProjectcode());
|
|
|
+ indicator.setProjectname(largeScreenCheckVo.getProjectname());
|
|
|
+ indicator.setMachineid(largeScreenCheckVo.getMachinenoid());
|
|
|
+ indicator.setMachineno(largeScreenCheckVo.getMachineno());
|
|
|
+ indicator.setDisplayboard("绿");
|
|
|
+ indicator.setIndicatorname("三单完成情况");
|
|
|
+ indicator.setType("pmq_management");
|
|
|
+ indicator.setSort(5);
|
|
|
+ // 分子
|
|
|
+ int molecule = Integer.parseInt(largeScreenCheckVo.getMolecule());
|
|
|
+ indicator.setCompleted(molecule);
|
|
|
+ // 分母
|
|
|
+ int denominator = Integer.parseInt(largeScreenCheckVo.getDenominator());
|
|
|
+ indicator.setTotal(denominator);
|
|
|
+ // 百分比
|
|
|
+ BigDecimal result;
|
|
|
+ if (denominator == 0) {
|
|
|
+ // 分母为 0 时,根据实际情况设置为 0 或抛出异常
|
|
|
+ result = BigDecimal.ZERO;
|
|
|
+ } else {
|
|
|
+ BigDecimal bdMolecule = BigDecimal.valueOf(molecule);
|
|
|
+ BigDecimal bdDenominator = BigDecimal.valueOf(denominator);
|
|
|
+ result = bdMolecule.divide(bdDenominator, 2, RoundingMode.HALF_UP);
|
|
|
+ }
|
|
|
+ indicator.setCompletionrate(result);
|
|
|
+ resultList.add(indicator);
|
|
|
+ }
|
|
|
+ if(!resultList.isEmpty()){
|
|
|
+ projectDeviceIndicatorService.saveBatch(resultList);
|
|
|
+ }
|
|
|
+ log.info("大屏数据源(三单)存储结束");
|
|
|
+ }
|
|
|
}
|