Selaa lähdekoodia

添加项目成本相关接口

ljy121 1 vuosi sitten
vanhempi
commit
532e65a792

+ 4 - 37
zjugis-business/src/main/java/com/zjugis/business/bean/dto/ProjectCostDto.java

@@ -3,7 +3,7 @@ package com.zjugis.business.bean.dto;
 import com.zjugis.framework.common.pojo.PageParam;
 import lombok.Data;
 
-import java.util.Date;
+import javax.validation.constraints.NotBlank;
 
 /**
  * 项目月度成本表表(ProjectCost)entity class
@@ -14,41 +14,8 @@ import java.util.Date;
 @Data
 
 public class ProjectCostDto extends PageParam {
-//ID
-    private Object id;
-//项目ID
-    private Object projectId;
-//日期
-    private Date rq;
-//产值进度
-    private Object czjd;
-//用车成本
-    private Object yccb;
-//人力成本
-    private Object rlcb;
-//出差成本
-    private Object cccb;
-//普通报销成本
-    private Object ptbxcb;
-//用款成本
-    private Object ykcb;
-//排序序号
-    private Object indexCode;
-//创建人
-    private Object createWorker;
-//创建时间
-    private Date createTime;
-//最后修改人
-    private Object latestModifyWorker;
-//最后修改时间
-    private Date latestModifyTime;
-//是否合法
-    private Object isvalid;
-//备注1
-    private Object bz1;
-//备注2
-    private Object bz2;
-//备注3
-    private Object bz3;
+
+    @NotBlank
+    private String projectId;
 }
 

+ 7 - 7
zjugis-business/src/main/java/com/zjugis/business/bean/entity/ProjectCost.java

@@ -23,19 +23,19 @@ public class ProjectCost extends BaseEntity {
 //项目ID
     private String projectId;
 //日期
-    private LocalDate rq;
+    private LocalDate countDate;
 //产值进度
-    private String czjd;
+    private String outputProgress;
 //用车成本
-    private BigDecimal yccb;
+    private BigDecimal vehicleCost;
 //人力成本
-    private BigDecimal rlcb;
+    private BigDecimal laborCost;
 //出差成本
-    private BigDecimal cccb;
+    private BigDecimal travelCost;
 //普通报销成本
-    private BigDecimal ptbxcb;
+    private BigDecimal reimbursementCost;
 //用款成本
-    private BigDecimal ykcb;
+    private BigDecimal paymentCost;
 
 }
 

+ 32 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/response/ProjectCostResponse.java

@@ -0,0 +1,32 @@
+package com.zjugis.business.bean.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author ljy
+ * @version 1.0
+ * @date 2023/11/21 9:59
+ */
+@Data
+public class ProjectCostResponse {
+
+    private BigDecimal cost;
+
+    private BigDecimal travelCost;
+
+    private BigDecimal reimbursementCost;
+
+    private BigDecimal subcontractCost;
+
+    private BigDecimal outsourceCost;
+
+    private BigDecimal laborCost;
+
+    private BigDecimal paymentCost;
+
+    public void calcCost(){
+        this.cost =  travelCost.add(reimbursementCost).add(subcontractCost).add(outsourceCost).add(laborCost).add(paymentCost);
+    }
+}

+ 13 - 6
zjugis-business/src/main/java/com/zjugis/business/controller/ProjectCostController.java

@@ -3,11 +3,13 @@ package com.zjugis.business.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.business.bean.dto.ProjectCostDto;
 import com.zjugis.business.bean.entity.ProjectCost;
+import com.zjugis.business.bean.response.ProjectCostResponse;
 import com.zjugis.business.service.ProjectCostService;
 import com.zjugis.framework.common.pojo.CommonResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -22,27 +24,32 @@ public class ProjectCostController {
     @Autowired
     private ProjectCostService projectCostService;
 
-    @GetMapping("/projectCost/page")
-    public CommonResult<Page<ProjectCost>> page(@RequestBody ProjectCostDto projectCostDto ) {
+    @GetMapping("/project-cost/page")
+    public CommonResult<Page<ProjectCost>> page(@Valid ProjectCostDto projectCostDto ) {
             return CommonResult.success(projectCostService.page(projectCostDto));
     }
 
-    @GetMapping("/projectCost")
+    @PostMapping("/project-cost/calculate")
+    public CommonResult<ProjectCostResponse> calculate(@Valid @RequestBody ProjectCostDto projectCostDto) {
+        return CommonResult.success(projectCostService.calculate(projectCostDto));
+    }
+
+    @GetMapping("/project-cost")
     public CommonResult<ProjectCost> get(@RequestParam("id") String id) {
         return CommonResult.success(projectCostService.queryById(id));
     }
 
-    @PostMapping("/projectCost")
+    @PostMapping("/project-cost")
     public CommonResult<String> create(@RequestBody ProjectCost projectCost) {
         return CommonResult.success(projectCostService.insert(projectCost));
     }
 
-    @DeleteMapping("/projectCost")
+    @DeleteMapping("/project-cost")
     public CommonResult delete(@RequestBody List<String> idList) {
         return CommonResult.success(projectCostService.deleteByIdList(idList));
     }
 
-    @PutMapping("/projectCost")
+    @PutMapping("/project-cost")
     public CommonResult update(@RequestBody ProjectCost projectCost) {
         return CommonResult.success(projectCostService.update(projectCost));
     }

+ 2 - 6
zjugis-business/src/main/java/com/zjugis/business/flow/demo/controller/WorkFlowController.java

@@ -3,7 +3,6 @@ package com.zjugis.business.flow.demo.controller;
 
 import com.zjugis.business.flow.demo.entity.DemoForm;
 import com.zjugis.business.flow.demo.service.WorkFlowService;
-import com.zjugis.framework.security.core.LoginUser;
 import com.zjugis.framework.workflow.model.BaseController;
 import com.zjugis.framework.workflow.spring.resovler.ParamModel;
 import com.zjugis.framework.workflow.workflow.WorkFlow;
@@ -16,9 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.HashMap;
 import java.util.Map;
 
-import static com.zjugis.framework.security.core.util.SecurityFrameworkUtils.mockLoginUser;
-import static com.zjugis.framework.security.core.util.SecurityFrameworkUtils.setLoginUser;
-
 
 @RestController
 @RequestMapping("/WorkFlow")
@@ -34,8 +30,8 @@ public class WorkFlowController extends BaseController {
     @ResponseBody
     @RequestMapping("/index")
     public String index(String activityTemplateId, String flowInstanceId, String userId) throws Exception {
-        
-        
+
+
         Map<String, Object> map = new HashMap<>();
         map.put("form1", form1());
         map.put("form2", form2());

+ 6 - 0
zjugis-business/src/main/java/com/zjugis/business/mapper/ProjectCostMapper.java

@@ -1,7 +1,10 @@
 package com.zjugis.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zjugis.business.bean.dto.ProjectCostDto;
 import com.zjugis.business.bean.entity.ProjectCost;
+import com.zjugis.business.bean.response.ProjectCostResponse;
+import feign.Param;
 import org.springframework.stereotype.Repository;
 /**
  * 项目月度成本表表(ProjectCost)repository class
@@ -13,5 +16,8 @@ import org.springframework.stereotype.Repository;
 public interface ProjectCostMapper extends BaseMapper<ProjectCost> {
 
 
+    ProjectCostResponse calculate(@Param("params") ProjectCostDto projectCostDto);
+
+    ProjectCostResponse selectSubcontractCost(@Param("params") ProjectCostDto projectCostDto);
 }
 

+ 3 - 0
zjugis-business/src/main/java/com/zjugis/business/service/ProjectCostService.java

@@ -4,6 +4,7 @@ package com.zjugis.business.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.business.bean.dto.ProjectCostDto;
 import com.zjugis.business.bean.entity.ProjectCost;
+import com.zjugis.business.bean.response.ProjectCostResponse;
 
 import java.util.List;
 
@@ -50,5 +51,7 @@ public interface ProjectCostService {
     int deleteByIdList(List<String> idList);
 
     Page<ProjectCost> page(ProjectCostDto projectCostDto);
+
+    ProjectCostResponse calculate(ProjectCostDto projectCostDto);
 }
 

+ 21 - 0
zjugis-business/src/main/java/com/zjugis/business/service/impl/ProjectCostServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.business.bean.dto.ProjectCostDto;
 import com.zjugis.business.bean.entity.ProjectCost;
+import com.zjugis.business.bean.response.ProjectCostResponse;
+import com.zjugis.business.mapper.ContractMapper;
 import com.zjugis.business.mapper.ProjectCostMapper;
 import com.zjugis.business.service.ProjectCostService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +26,9 @@ public class ProjectCostServiceImpl implements ProjectCostService {
     @Autowired
     private ProjectCostMapper projectCostMapper;
 
+    @Autowired
+    private ContractMapper contractMapper;
+
     @Override
     public ProjectCost queryById(String id) {
         return projectCostMapper.selectById(id);
@@ -33,9 +38,25 @@ public class ProjectCostServiceImpl implements ProjectCostService {
     public Page<ProjectCost> page(ProjectCostDto projectCostDto) {
         Page<ProjectCost> page= new Page<>(projectCostDto.getPageNo(),projectCostDto.getPageSize());
         QueryWrapper<ProjectCost> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("PROJECT_ID",projectCostDto.getProjectId());
+        queryWrapper.orderByDesc("COUNT_DATE");
         return projectCostMapper.selectPage(page,queryWrapper);
     }
 
+    /**
+     * @param projectCostDto
+     * @return
+     */
+    @Override
+    public ProjectCostResponse calculate(ProjectCostDto projectCostDto) {
+        ProjectCostResponse cost = projectCostMapper.calculate(projectCostDto);
+        ProjectCostResponse subCost = projectCostMapper.selectSubcontractCost(projectCostDto);
+        cost.setSubcontractCost(subCost.getSubcontractCost());
+        cost.setOutsourceCost(subCost.getOutsourceCost());
+        cost.calcCost();
+        return cost;
+    }
+
     @Override
     public String insert(ProjectCost projectCost) {
         projectCostMapper.insert(projectCost);

+ 1 - 1
zjugis-business/src/main/resources/application.yaml

@@ -50,7 +50,7 @@ zjugis:
 serviceUrl:
   sysUrl: http://localhost:6010
   workflow-client: http://localhost:6010
-  UI: http://114.215.200.79:81/UI
+  UI: http://localhost:6090
   ui_version: http://114.215.200.79:81/UI
   z_workflow: http://localhost:6090
 

+ 2 - 2
zjugis-business/src/main/resources/bootstrap-local.yaml

@@ -9,10 +9,10 @@ spring:
       discovery:
         service: business
         server-addr: 10.10.10.7:8848
-        namespace: f444858c-ae8b-4b7d-aa45-2c3238895348
+        namespace: d62c66f5-9ddc-40e9-9716-65f65557a557
       config:
         server-addr: 10.10.10.7:8848 # Nacos 服务器地址
-        namespace: f444858c-ae8b-4b7d-aa45-2c3238895348        # 命名空间。这里使用 dev 开发环境
+        namespace: d62c66f5-9ddc-40e9-9716-65f65557a557       # 命名空间。这里使用 dev 开发环境
         group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
         name: # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
         file-extension: yaml

+ 22 - 0
zjugis-business/src/main/resources/mapper/oracle/ProjectCostMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zjugis.business.mapper.ProjectCostMapper">
+
+    <select id="calculate" resultType="com.zjugis.business.bean.response.ProjectCostResponse">
+        SELECT NVL(SUM(NVL(VEHICLE_COST, 0)), 0) AS vehicleCost,
+        NVL(SUM(NVL(LABOR_COST, 0)), 0) AS laborCost,
+        NVL(SUM(NVL(TRAVEL_COST, 0)), 0) AS travelCost,
+        NVL(SUM(NVL(REIMBURSEMENT_COST, 0)), 0) AS reimbursementCost,
+        NVL(SUM(NVL(PAYMENT_COST, 0)), 0) AS paymentCost
+        FROM PROJECT_COST
+        WHERE PROJECT_ID = #{projectId} AND ISVALID = 1
+    </select>
+
+    <select id="selectSubcontractCost" resultType="com.zjugis.business.bean.response.ProjectCostResponse">
+        SELECT
+        NVL(SUM(CASE CONTRACT_TYPE WHEN 2 THEN NVL(SUB_AMOUNT,0) END),0) AS subcontractCost,
+        NVL(SUM(CASE CONTRACT_TYPE WHEN 3 THEN NVL(SUB_AMOUNT,0) END),0) AS outsourceCost
+        FROM V_PROJECT_CONTRACT
+        WHERE PID = #{projectId}
+    </select>
+</mapper>