Quellcode durchsuchen

Merge remote-tracking branch 'origin/master' into master

yangyj vor 10 Monaten
Ursprung
Commit
519ff7f93f

+ 43 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/config/IsConverter.java

@@ -0,0 +1,43 @@
+package org.springblade.meter.config;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+import java.util.Objects;
+
+/**
+ * @Param   EasyExcel配置类型转换
+ * @Author wangwl
+ * @Date 2024/4/18 14:54
+ **/
+public class IsConverter implements Converter<Integer> {
+    //写入数据时,将excel单元格数据转化为java
+    @Override
+    public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        String data = cellData.getStringValue();
+        if (data != null && Objects.equals(data, "是")) {
+            return 1;
+        }
+        return 0;
+    }
+
+    //导出数据到excel
+    @Override
+    public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        return new CellData(value == 1 ? "是" : "否");
+    }
+
+    @Override
+    public Class<?> supportJavaTypeKey() {
+        return String.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+}

+ 7 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ContractInventoryForm.java

@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.springblade.core.mp.base.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springblade.meter.config.IsConverter;
 
 /**
  * 合同工程清单表实体类
@@ -119,6 +120,12 @@ public class ContractInventoryForm extends BaseEntity {
     @ApiModelProperty(value = "合同数量")
     @ExcelProperty("数量")
     private BigDecimal contractTotal;
+    /**
+     * 是否允许材料调差0否1是
+     */
+    @ApiModelProperty(value = "是否允许材料调差0否1是")
+    @ExcelProperty(value = "是否允许材料调差", converter = IsConverter.class)
+    private Integer isAdjust;
     /**
      * 变更后数量
      */

+ 2 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/InventoryFormDetailVO.java

@@ -47,4 +47,6 @@ public class InventoryFormDetailVO extends ContractInventoryForm {
 	@ApiModelProperty(value = "是否专项暂定金")
 	private String isSpecialFund;
 
+	@ApiModelProperty(value = "是否允许材料调差名称")
+	private String isAdjustName;
 }

+ 22 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -5,6 +5,7 @@ import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.JSON;
 import com.aspose.cells.PageSetup;
 import com.aspose.cells.SaveFormat;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -810,9 +811,27 @@ public class TaskController extends BladeController {
                                 .eq(ContractMeterPeriod::getId, periodId));
 
                         try {
+                            //修改所有复制数据id,并且同步修改中间表id,用于废除预览
+                            List<MiddleMeterApplyTask> meterApplyTaskList = middleMeterApplyServiceTask.list(new LambdaQueryWrapper<MiddleMeterApplyTask>()
+                                    .eq(MiddleMeterApplyTask::getContractPeriodId, periodId));
+                            List<InventoryFormApplyTask> taskList = inventoryFormApplyServiceTask.list(new LambdaQueryWrapper<InventoryFormApplyTask>()
+                                    .eq(InventoryFormApplyTask::getContractPeriodId, periodId));
+                            Map<Long,Long> idMap = new HashMap<>();
+                            for (MiddleMeterApplyTask applyTask : meterApplyTaskList) {
+                                Long id = SnowFlakeUtil.getId();
+                                idMap.put(applyTask.getId(),id);
+                                applyTask.setId(id);
+                            }
+                            for (InventoryFormApplyTask applyTask : taskList) {
+                                applyTask.setId(null);
+                                applyTask.setMiddleMeterId(idMap.get(applyTask.getMiddleMeterId()));
+                            }
                             /*删除业务复制数据taskVO*/
                             jdbcTemplate.execute("DELETE FROM s_middle_meter_apply_task WHERE contract_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
                             jdbcTemplate.execute("DELETE FROM s_inventory_form_apply_task WHERE contract_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
+
+                            middleMeterApplyServiceTask.saveBatch(meterApplyTaskList);
+                            inventoryFormApplyServiceTask.saveBatch(taskList);
                         } catch (Exception e) {
                             throw new ServiceException("删除业务复制数据taskVO失败");
                         }
@@ -1230,7 +1249,8 @@ public class TaskController extends BladeController {
             }
 
             /*中间业务taskVO复制数据(只有待审批、已审批任务才能查看到具体的taskVO复制数据,因为废除任务时taskVO被删除,但是单条驳回时有记录单条数据的历史信息,所以通过的任务还是能查看到)*/
-            if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
+//            if (ObjectUtil.isNotEmpty(task.getFormDataId()) && Arrays.asList(1, 2).contains(task.getStatus())) {
+            if (ObjectUtil.isNotEmpty(task.getFormDataId())) {
                 /*获取当条任务所有批注信息*/
                 Map<String, TaskComment> taskCommentMap = jdbcTemplate.query("SELECT * FROM s_task_comment WHERE task_id = " + id, new BeanPropertyRowMapper<>(TaskComment.class))
                         .stream()
@@ -2124,7 +2144,7 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isEmpty(dto.getDataId()) || ObjectUtil.isEmpty(dto.getTaskId())) {
             throw new ServiceException("任务id、数据id不能为空");
         }
-        if (Arrays.asList("1", "2").contains(dto.getAuditStatus())) {
+        if (Arrays.asList("1", "2","3").contains(dto.getAuditStatus())) {
             Task task = jdbcTemplate.query("SELECT meter_task_type,process_instance_id FROM u_task WHERE id = " + dto.getTaskId(), new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
             if (task != null) {
                 check(task);

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

@@ -63,6 +63,7 @@
     <select id="getById" resultType="org.springblade.meter.vo.InventoryFormDetailVO">
         select *,
                if(scif.form_type=1,'否','是') as isSpecialFund,
+               if(scif.is_adjust=1,'是','否') as isAdjustName,
                 if(scif.form_type=0,'',(select dict_value from blade_dict where is_deleted = 0 and code = 'meter_form_type' and dict_key = scif.form_type))  as formTypeName
         from s_contract_inventory_form scif where id = #{id}
     </select>

+ 0 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java

@@ -675,7 +675,6 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
         for (FormNodeSortVO vo : list) {
             if (vo.getChildren().size() == 0 && StringUtils.isNotBlank(vo.getFormNumber())){
                 forms.add(vo.getFormNumber());
-                continue;
             }else {
                 gatherSortNode(vo.getChildren(), forms);
             }