Browse Source

创建不同类型数据初始化

DLC 2 months ago
parent
commit
2fe2a95766

+ 22 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/dao/QcsMainCostDao.java

@@ -0,0 +1,22 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.QcsMainCostDo;
+import com.rongwei.bsentity.domain.QcsSubjectConfigDo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+public interface QcsMainCostDao extends BaseDao<QcsMainCostDo> {
+
+    @Select("select SUM(AMOUNT) as AMOUNTSUM from qcs_main_detail where DELETED='0' and MAINID=#{costId}")
+    Map<String, Object> getAmountSum(@Param("costId") String costId);
+
+    @Select("select * from qcs_main_cost where DELETED='0' and BASEID=#{baseId} and DATE_FORMAT(YEARMONTH, '%Y-%m')=#{yearmonth}")
+    List<QcsMainCostDo> getMainCosts(@Param("baseId") String baseId, @Param("yearmonth") String yearmonth);
+
+    @Select("select * from qcs_subject_config where DELETED='0' and (SECSUBJECT='预防成本' or SECSUBJECT='鉴定成本') order by SECSUBJECT,SORT")
+    List<QcsSubjectConfigDo> getSubjectConfig();
+}

+ 7 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/dao/QcsMainDetailDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.QcsMainDetailDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface QcsMainDetailDao extends BaseDao<QcsMainDetailDo> {
+}

+ 11 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/QcsMainCostService.java

@@ -0,0 +1,11 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.QcsMainCostDo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
+
+public interface QcsMainCostService extends IService<QcsMainCostDo> {
+    R setOtherCost(Map<String, String> params);
+}

+ 7 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/QcsMainDetailService.java

@@ -0,0 +1,7 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.QcsMainDetailDo;
+
+public interface QcsMainDetailService extends IService<QcsMainDetailDo> {
+}

+ 1 - 1
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/CommonServiceImpl.java

@@ -43,7 +43,7 @@ public class CommonServiceImpl implements CommonService {
         } catch (Exception e) {
             e.printStackTrace();
             r.setCode("500");
-            log.info("获取项目工号失败:" + e.getMessage());
+            log.info("获取部件图号失败:" + e.getMessage());
         }
         return r;
     }

+ 174 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/QcsMainCostServiceImpl.java

@@ -0,0 +1,174 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.QcsMainCostDao;
+import com.rongwei.bscommon.sys.service.QcsMainCostService;
+import com.rongwei.bscommon.sys.service.QcsMainDetailService;
+import com.rongwei.bsentity.domain.QcsMainCostDo;
+import com.rongwei.bsentity.domain.QcsMainDetailDo;
+import com.rongwei.bsentity.domain.QcsSubjectConfigDo;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainCostDo> implements QcsMainCostService {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Autowired
+    QcsMainCostService qcsMainCostService;
+    @Autowired
+    QcsMainDetailService qcsMainDetailService;
+    @Autowired
+    QcsMainCostDao qcsMainCostDao;
+
+    @Override
+    @Transactional
+    public R setOtherCost(Map<String, String> params) {
+        String costId = params.get("formId");
+        BigDecimal qualitycosttotal = BigDecimal.ZERO;
+
+        //要创建的实例
+        List<QcsMainCostDo> qcsMainCostDoList = new ArrayList<>();
+        List<QcsMainDetailDo> qcsMainDetailDoList = new ArrayList<>();
+
+        QcsMainCostDo qcsMainCostDo = qcsMainCostService.getById(costId);
+        Map<String, Object> detailMap = qcsMainCostDao.getAmountSum(costId);
+        qcsMainCostDo.setCosttotal((BigDecimal) detailMap.get("AMOUNTSUM"));
+        if (qcsMainCostDo.getStatus().equals("已提交")) {
+            qualitycosttotal = qualitycosttotal.add(qcsMainCostDo.getCosttotal());
+        }
+
+        //科目配置
+        List<QcsSubjectConfigDo> qcsSubjectConfigDos = qcsMainCostDao.getSubjectConfig();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+        List<QcsMainCostDo> qcsMainCostDos = qcsMainCostDao.getMainCosts(qcsMainCostDo.getBaseid(), sdf.format(qcsMainCostDo.getYearmonth()));
+        //COSTTYPE 成本类型(预防成本1鉴定成本2内部损失3外部损失4)
+
+        //预防成本1
+        QcsMainCostDo qcsMainCostDo1 = qcsMainCostDos.stream().filter(m -> m.getCosttype().equals("1")).findAny().orElse(null);
+        if (qcsMainCostDo1 != null) {
+            if (!qcsMainCostDo1.getId().equals(costId) && qcsMainCostDo1.getStatus().equals("已提交")) {
+                qualitycosttotal = qualitycosttotal.add(qcsMainCostDo1.getCosttotal());
+            }
+        } else {
+            //创建同一单位相同年月的预防成本数据
+            String mainId1 = SecurityUtil.getUUID();
+            qcsMainCostDo1 = new QcsMainCostDo();
+            qcsMainCostDo1.setId(mainId1);
+            qcsMainCostDo1.setBaseid(qcsMainCostDo.getBaseid());
+            qcsMainCostDo1.setBasename(qcsMainCostDo.getBasename());
+            qcsMainCostDo1.setYearmonth(qcsMainCostDo.getYearmonth());
+            qcsMainCostDo1.setCosttype("1");
+
+            //明细数据
+            List<QcsSubjectConfigDo> qcsSubjectConfigDos1 = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("预防成本")).collect(Collectors.toList());
+            for (QcsSubjectConfigDo qcsSubjectConfigDo : qcsSubjectConfigDos1) {
+                QcsMainDetailDo qcsMainDetailDo = new QcsMainDetailDo();
+                qcsMainDetailDo.setId(SecurityUtil.getUUID());
+                qcsMainDetailDo.setMainid(mainId1);
+                qcsMainDetailDo.setThrsubject(qcsSubjectConfigDo.getThrsubject());
+                qcsMainDetailDo.setFousubject(qcsSubjectConfigDo.getFousubject());
+                qcsMainDetailDo.setSort(qcsSubjectConfigDo.getSort());
+                qcsMainDetailDoList.add(qcsMainDetailDo);
+            }
+        }
+
+        //鉴定成本2
+        QcsMainCostDo qcsMainCostDo2 = qcsMainCostDos.stream().filter(m -> m.getCosttype().equals("2")).findAny().orElse(null);
+        if (qcsMainCostDo2 != null) {
+            if (!qcsMainCostDo2.getId().equals(costId) && qcsMainCostDo2.getStatus().equals("已提交")) {
+                qualitycosttotal = qualitycosttotal.add(qcsMainCostDo2.getCosttotal());
+            }
+        } else {
+            //创建同一单位相同年月的预防成本数据
+            String mainId2 = SecurityUtil.getUUID();
+            qcsMainCostDo2 = new QcsMainCostDo();
+            qcsMainCostDo2.setId(mainId2);
+            qcsMainCostDo2.setBaseid(qcsMainCostDo.getBaseid());
+            qcsMainCostDo2.setBasename(qcsMainCostDo.getBasename());
+            qcsMainCostDo2.setYearmonth(qcsMainCostDo.getYearmonth());
+            qcsMainCostDo2.setCosttype("2");
+
+            //明细数据
+            List<QcsSubjectConfigDo> qcsSubjectConfigDos2 = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("鉴定成本")).collect(Collectors.toList());
+            for (QcsSubjectConfigDo qcsSubjectConfigDo : qcsSubjectConfigDos2) {
+                QcsMainDetailDo qcsMainDetailDo = new QcsMainDetailDo();
+                qcsMainDetailDo.setId(SecurityUtil.getUUID());
+                qcsMainDetailDo.setMainid(mainId2);
+                qcsMainDetailDo.setThrsubject(qcsSubjectConfigDo.getThrsubject());
+                qcsMainDetailDo.setFousubject(qcsSubjectConfigDo.getFousubject());
+                qcsMainDetailDo.setSort(qcsSubjectConfigDo.getSort());
+                qcsMainDetailDoList.add(qcsMainDetailDo);
+            }
+        }
+
+        //内部损失3
+        QcsMainCostDo qcsMainCostDo3 = qcsMainCostDos.stream().filter(m -> m.getCosttype().equals("3")).findAny().orElse(null);
+        if (qcsMainCostDo3 != null) {
+            if (!qcsMainCostDo3.getId().equals(costId) && qcsMainCostDo3.getStatus().equals("已提交")) {
+                qualitycosttotal = qualitycosttotal.add(qcsMainCostDo3.getCosttotal());
+            }
+        } else {
+            //创建同一单位相同年月的预防成本数据
+            String mainId1 = SecurityUtil.getUUID();
+            qcsMainCostDo3 = new QcsMainCostDo();
+            qcsMainCostDo3.setId(mainId1);
+            qcsMainCostDo3.setBaseid(qcsMainCostDo.getBaseid());
+            qcsMainCostDo3.setBasename(qcsMainCostDo.getBasename());
+            qcsMainCostDo3.setYearmonth(qcsMainCostDo.getYearmonth());
+            qcsMainCostDo3.setCosttype("3");
+        }
+
+        //外部损失4
+        QcsMainCostDo qcsMainCostDo4 = qcsMainCostDos.stream().filter(m -> m.getCosttype().equals("4")).findAny().orElse(null);
+        if (qcsMainCostDo4 != null) {
+            if (!qcsMainCostDo4.getId().equals(costId) && qcsMainCostDo4.getStatus().equals("已提交")) {
+                qualitycosttotal = qualitycosttotal.add(qcsMainCostDo4.getCosttotal());
+            }
+        } else {
+            //创建同一单位相同年月的预防成本数据
+            String mainId1 = SecurityUtil.getUUID();
+            qcsMainCostDo4 = new QcsMainCostDo();
+            qcsMainCostDo4.setId(mainId1);
+            qcsMainCostDo4.setBaseid(qcsMainCostDo.getBaseid());
+            qcsMainCostDo4.setBasename(qcsMainCostDo.getBasename());
+            qcsMainCostDo4.setYearmonth(qcsMainCostDo.getYearmonth());
+            qcsMainCostDo4.setCosttype("4");
+        }
+
+        if (qualitycosttotal.compareTo(BigDecimal.ZERO) > 0) {
+            qcsMainCostDo1.setQualitycosttotal(qualitycosttotal);
+            qcsMainCostDo2.setQualitycosttotal(qualitycosttotal);
+            qcsMainCostDo3.setQualitycosttotal(qualitycosttotal);
+            qcsMainCostDo4.setQualitycosttotal(qualitycosttotal);
+        }
+        qcsMainCostDoList.add(qcsMainCostDo1);
+        qcsMainCostDoList.add(qcsMainCostDo2);
+        qcsMainCostDoList.add(qcsMainCostDo3);
+        qcsMainCostDoList.add(qcsMainCostDo4);
+
+        boolean bool1 = qcsMainCostService.updateById(qcsMainCostDo);
+        boolean bool2 = qcsMainCostService.saveOrUpdateBatch(qcsMainCostDoList);
+        boolean bool3 = true;
+        if (qcsMainDetailDoList.size() > 0) {
+            bool3 = qcsMainDetailService.saveBatch(qcsMainDetailDoList);
+        }
+        if (bool1 && bool2 && bool3) {
+            return R.ok();
+        } else {
+            return R.error();
+        }
+    }
+}

+ 11 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/QcsMainDetailImpl.java

@@ -0,0 +1,11 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.QcsMainDetailDao;
+import com.rongwei.bscommon.sys.service.QcsMainDetailService;
+import com.rongwei.bsentity.domain.QcsMainDetailDo;
+import org.springframework.stereotype.Service;
+
+@Service
+public class QcsMainDetailImpl extends ServiceImpl<QcsMainDetailDao, QcsMainDetailDo> implements QcsMainDetailService {
+}

+ 58 - 0
qcs-entity/src/main/java/com/rongwei/bsentity/domain/QcsMainCostDo.java

@@ -0,0 +1,58 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qcs_main_cost")
+public class QcsMainCostDo extends BaseDo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * ID
+     */
+    private String id;
+
+    /**
+     * 一级单位ID
+     */
+    private String baseid;
+
+    /**
+     * 一级单位
+     */
+    private String basename;
+
+    /**
+     * 年月
+     */
+    private Date yearmonth;
+
+    /**
+     * 质量成本合计
+     */
+    private BigDecimal qualitycosttotal;
+
+    /**
+     * 成本小计
+     */
+    private BigDecimal costtotal;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 成本类型(预防成本1鉴定成本2内部损失3外部损失4)
+     */
+    private String costtype;
+}

+ 47 - 0
qcs-entity/src/main/java/com/rongwei/bsentity/domain/QcsMainDetailDo.java

@@ -0,0 +1,47 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qcs_main_detail")
+public class QcsMainDetailDo extends BaseDo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * ID
+     */
+    private String id;
+
+    /**
+     * 主表ID
+     */
+    private String mainid;
+
+    /**
+     * 三级科目
+     */
+    private String thrsubject;
+
+    /**
+     * 四级科目
+     */
+    private String fousubject;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 金额(元)
+     */
+    private BigDecimal amount;
+}

+ 37 - 0
qcs-entity/src/main/java/com/rongwei/bsentity/domain/QcsSubjectConfigDo.java

@@ -0,0 +1,37 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qcs_subject_config")
+public class QcsSubjectConfigDo extends BaseDo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 二级科目
+     */
+    private String secsubject;
+
+    /**
+     * 三级科目
+     */
+    private String thrsubject;
+
+    /**
+     * 四级科目
+     */
+    private String fousubject;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+}

+ 33 - 0
qcs-server/src/main/java/com/rongwei/controller/QcsMainCostController.java

@@ -0,0 +1,33 @@
+package com.rongwei.controller;
+
+import com.rongwei.bscommon.sys.service.QcsMainCostService;
+import com.rongwei.rwcommon.base.R;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/qcsmaincost")
+@Slf4j
+public class QcsMainCostController {
+    @Autowired
+    QcsMainCostService qcsMainCostService;
+
+    //创建其他成本数据
+    @PostMapping("/setOtherCost")
+    public R setOtherCost(@RequestBody Map<String, String> params) {
+        try {
+            log.info("创建其他成本数据开始--" + params);
+            return qcsMainCostService.setOtherCost(params);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("创建其他成本数据异常..." + e.getMessage());
+            return R.error();
+        }
+    }
+}