Parcourir la source

材料调差1

qianxb il y a 10 mois
Parent
commit
25163f2ab1

+ 41 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/GetMaterialCurrentPriceVO.java

@@ -0,0 +1,41 @@
+package org.springblade.meter.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2024/4/23 11:21
+ **/
+@Data
+public class GetMaterialCurrentPriceVO {
+
+    @ApiModelProperty(value = "材料实时价格id")
+    private Long id;
+
+    @ApiModelProperty(value = "节点名称")
+    private String nodeName;
+
+    @ApiModelProperty(value = "材料编号")
+    private String materialNumber;
+
+    @ApiModelProperty(value = "材料名称")
+    private String materialName;
+
+    @ApiModelProperty(value = "单位")
+    private String unit;
+
+    @ApiModelProperty(value = "实时单价")
+    private BigDecimal currentPrice;
+
+    @ApiModelProperty(value = "开始日期")
+    private LocalDate startDate;
+
+    @ApiModelProperty(value = "结束日期")
+    private LocalDate endDate;
+
+}

+ 10 - 10
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractMaterialController.java

@@ -136,40 +136,40 @@ public class ContractMaterialController extends BladeController {
 	}
 
 	@PostMapping("/get-all-material2")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "材料调差-获取材料列表不分页", notes = "传入合同id,搜索条件")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "调差系数-获取材料列表不分页", notes = "传入合同id,搜索条件")
 	public R<List<ContractMaterialVO4>> getAllMaterial2(@Valid @RequestBody MaterialListDTO dto) {
 		List<ContractMaterialVO4> list = contractMaterialService.getAllMaterial2(dto);
 		return R.data(list);
 	}
 
 	@GetMapping("/get-adjust-form-tree")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "材料调差-绑定清单-获取清单树", notes = "传入合同id,材料id")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "调差系数-绑定清单-获取清单树", notes = "传入合同id,材料id")
 	public R<List<FormTreeVO2>> getAdjustFormTree(Long contractId,Long materialId) {
 		List<FormTreeVO2> list = contractMaterialService.getAdjustFormTree(contractId,materialId);
 		return R.data(list);
 	}
 
 	@PostMapping("/material-link-form")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "材料调差-绑定清单-确定绑定", notes = "传入项目id,合同id,材料id,节点数组")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "调差系数-绑定清单-确定绑定", notes = "传入项目id,合同id,材料id,节点数组")
 	public R materialLinkForm(@Valid @RequestBody MaterialLinkFormDTO dto) {
 		contractMaterialService.materialLinkForm(dto);
 		return R.success("绑定成功");
 	}
 
 	@GetMapping("/get-link-all-form")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "材料调差-编辑获取清单列表", notes = "传入合同id,材料id")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "调差系数-编辑获取清单列表", notes = "传入合同id,材料id")
 	public R<List<GetLinkAllFormVO>> getLinkAllForm(Long contractId,Long materialId) {
 		List<GetLinkAllFormVO> vos = contractMaterialService.getLinkAllForm(contractId,materialId);
 		return R.data(vos);
 	}
 
 	@GetMapping("/remove-link-form")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "材料调差-解除绑定关系", notes = "传入材料和清单绑定关系id")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "调差系数-解除绑定关系", notes = "传入材料和清单绑定关系id")
 	public R removeLinkForm(Long id) {
 		contractMaterialService.removeLinkForm(id);
 		return R.success("解除成功");

+ 10 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractMaterialValidityController.java

@@ -33,9 +33,11 @@ import org.springblade.meter.service.IAttachmentFormService;
 import org.springblade.meter.service.IContractMaterialValidityService;
 import org.springblade.meter.vo.ContractMaterialVO3;
 import org.springblade.meter.vo.ContractMaterialValidityVO;
+import org.springblade.meter.vo.GetMaterialCurrentPriceVO;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.time.YearMonth;
 import java.util.List;
 
 /**
@@ -75,6 +77,14 @@ public class ContractMaterialValidityController extends BladeController {
 		return R.data(list);
 	}
 
+	@GetMapping("/get-material-current-price")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "材料调差-选择实时价格", notes = "传入合同id,材料id,传入年月")
+	public R<List<GetMaterialCurrentPriceVO>> getMaterialCurrentPrice(Long contractId, Long materialId, YearMonth yearMonth) {
+		List<GetMaterialCurrentPriceVO> list = validityService.getMaterialCurrentPrice(contractId,materialId,yearMonth);
+		return R.data(list);
+	}
+
 
 	
 }

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMaterialMapper.xml

@@ -45,7 +45,7 @@
         from s_contract_material where is_deleted = 0 and contract_id = #{contractId}
     </select>
     <select id="getALLMaterial3" resultType="org.springblade.meter.vo.ContractMaterialVO4">
-        select id,material_number,material_name,unit
+        select id,material_number,material_name,unit,price
         from s_contract_material where is_deleted = 0 and contract_id = #{contractId}
         <if test="dto.materialNumber != null and dto.materialNumber != ''">
             and u.material_number like concat('%',#{dto.materialNumber},'%')

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMaterialValidityMapper.java

@@ -22,8 +22,10 @@ import org.springblade.meter.entity.AttachmentForm;
 import org.springblade.meter.entity.ContractMaterialValidity;
 import org.springblade.meter.vo.ContractMaterialVO3;
 import org.springblade.meter.vo.ContractMaterialValidityVO;
+import org.springblade.meter.vo.GetMaterialCurrentPriceVO;
 
 import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.List;
 import java.util.Set;
 
@@ -43,4 +45,6 @@ public interface ContractMaterialValidityMapper extends BaseMapper<ContractMater
     LocalDate getNewestEndDate(@Param("contractId") Long contractId);
 
     List<ContractMaterialVO3> detail(@Param("id") Long id);
+
+    List<GetMaterialCurrentPriceVO> getMaterialCurrentPrice(@Param("contractId") Long contractId,@Param("materialId") Long materialId,@Param("yearMonth") YearMonth yearMonth);
 }

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMaterialValidityMapper.xml

@@ -23,4 +23,16 @@
         from s_contract_material_price scmp left join s_contract_material scm on scmp.contract_material_id = scm.id
         where scmp.is_deleted = 0 and scmp.material_validity_id = #{id}
     </select>
+    <select id="getMaterialCurrentPrice" resultType="org.springblade.meter.vo.GetMaterialCurrentPriceVO">
+        select scmv.node_name ,scmp.current_price,scmp.id,scmv.start_date,scmv.end_date,
+        (select material_number from s_contract_material scm where scm.id = scmp.contract_material_id) as materialNumber,
+        (select material_name from s_contract_material scm where scm.id = scmp.contract_material_id) as materialName,
+        (select unit from s_contract_material scm where scm.id = scmp.contract_material_id) as unit
+        from s_contract_material_validity scmv inner join s_contract_material_price scmp on scmv.id = scmp.material_validity_id
+        where scmp.contract_material_id = #{materialId} and scmp.is_deleted = 0 and scmv.is_deleted = 0
+        <if test="yearMonth != null">
+          and #{yearMonth} between date_format(scmv.start_date,'%Y-%m') and date_format(scmv.end_date ,'%Y-%m')
+        </if>
+        order by end_date desc
+    </select>
 </mapper>

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IContractMaterialValidityService.java

@@ -22,7 +22,9 @@ import org.springblade.meter.entity.AttachmentForm;
 import org.springblade.meter.entity.ContractMaterialValidity;
 import org.springblade.meter.vo.ContractMaterialVO3;
 import org.springblade.meter.vo.ContractMaterialValidityVO;
+import org.springblade.meter.vo.GetMaterialCurrentPriceVO;
 
+import java.time.YearMonth;
 import java.util.List;
 import java.util.Set;
 
@@ -40,4 +42,6 @@ public interface IContractMaterialValidityService extends BaseService<ContractMa
     void add(ContractMaterialValidityDTO dto);
 
     List<ContractMaterialVO3> detail(Long id);
+
+    List<GetMaterialCurrentPriceVO> getMaterialCurrentPrice(Long contractId, Long materialId, YearMonth yearMonth);
 }

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractMaterialValidityServiceImpl.java

@@ -34,10 +34,12 @@ import org.springblade.meter.service.IContractMaterialValidityService;
 import org.springblade.meter.utils.ForestNodeMerger;
 import org.springblade.meter.vo.ContractMaterialVO3;
 import org.springblade.meter.vo.ContractMaterialValidityVO;
+import org.springblade.meter.vo.GetMaterialCurrentPriceVO;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -125,6 +127,12 @@ public class ContractMaterialValidityServiceImpl extends BaseServiceImpl<Contrac
         return vo3s;
     }
 
+    @Override
+    public List<GetMaterialCurrentPriceVO> getMaterialCurrentPrice(Long contractId, Long materialId, YearMonth yearMonth) {
+        List<GetMaterialCurrentPriceVO> vos = baseMapper.getMaterialCurrentPrice(contractId,materialId,yearMonth);
+        return vos;
+    }
+
     @NotNull
     private static List<ContractMaterialPrice> getContractMaterialPrices(ContractMaterialValidityDTO dto, ContractMaterialValidity validity) {
         List<ContractMaterialValidityDTO.Material> list = dto.getMaterials();