浏览代码

变更令撤销,与中间计量,材料,开工撤销,同时删除映射task表中数据和映射附件表中数据

qianxb 1 年之前
父节点
当前提交
aeeeb50d8f

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

@@ -221,7 +221,7 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds()) && ObjectUtil.isEmpty(approvalDTO.getFixedFlowId())) {
             throw new ServiceException("未获取到任务人信息,操作失败");
         }
-        //如果要升级审计意见单则校验是否存在
+        //如果要审计意见单则校验是否存在
         if (approvalDTO.getIsBuildAudit() != null && approvalDTO.getIsBuildAudit() == 1) {
             R<WbsTreePrivate> r = wbsTreePrivateClient.getProjectOpinionNode(approvalDTO.getProjectId());
             if (r.getCode() != 200) {
@@ -3418,12 +3418,26 @@ public class TaskController extends BladeController {
             @ApiImplicitParam(name = "periodId", value = "期数ID"),
             @ApiImplicitParam(name = "type", value = "类型(0中间,1材料,2开工)")
     })
+    @Transactional
     public R backMeterTask(@RequestParam String periodId, @RequestParam Integer type) {
-        // 0中间,1材料,2开工
+        // 0中间,1材料,2开工,3变更令
         try {
             String delTaskPall = "DELETE from u_task_parallel where process_instance_id in (SELECT process_instance_id from u_task where form_data_id ='" + periodId + "') ";
             String delTask = "DELETE from u_task where form_data_id ='" + periodId + "'";
 
+            //查询出当前计量期对应的任务
+            String selectTask = "SELECT * from u_task WHERE approval_type = 5 and form_data_id = ? and status in (1,2)";
+            List<Task> list = jdbcTemplate.query(selectTask, new BeanPropertyRowMapper<>(Task.class), periodId);
+            if (list.size() == 0){
+                return R.fail("撤销失败:未查出当前计量期对应任务信息");
+            }
+            if (list.size() > 1){
+                return R.fail("撤销失败:当前计量期查询出多条任务,请联系管理员");
+            }
+            Task task = list.get(0);
+            String deleteMapTask1 = null;
+            String deleteMapTask2 = null;
+            String deleteMapTask3 = null;
             if (type == 0) { //中间计量
                 String uptPeriod = "update s_contract_meter_period  set approve_status =0 where id ='" + periodId + "'";
 
@@ -3433,6 +3447,10 @@ public class TaskController extends BladeController {
                 jdbcTemplate.execute(delete);
                 jdbcTemplate.execute(uptPeriod);
                 jdbcTemplate.execute(updta);
+
+                //同时删除映射task表数据
+                deleteMapTask1 = "DELETE from s_middle_meter_apply_task where task_id = "+task.getId();
+                deleteMapTask2 =  "DELETE from s_inventory_form_apply_task where task_id = "+task.getId();
             }
             if(type ==1 ){
                 String uptPeriod = "update s_meter_period  set approve_status =0 where id ='" + periodId + "'";
@@ -3440,6 +3458,8 @@ public class TaskController extends BladeController {
                 String uptMeter = "update s_material_meter_form  set approve_status =0 where meter_period_id ='" + periodId + "'";
                 jdbcTemplate.execute(uptMeter);
 
+                //同时删除映射task表数据
+                deleteMapTask1 = "DELETE from s_material_meter_form_task where task_id = "+task.getId();
             }
             if(type ==2 ){
                 String uptPeriod = "update s_meter_period  set approve_status =0 where id ='" + periodId + "'";
@@ -3447,6 +3467,28 @@ public class TaskController extends BladeController {
                 String uptMeter = "update s_start_pay_meter_form  set approve_status =0 where meter_period_id ='" + periodId + "'";
                 jdbcTemplate.execute(uptMeter);
             }
+            if (type == 3){
+                //变更令没有期数,periodId为变更令ID
+                String uptPeriod = "update s_change_token_form  set approve_status =0 where id ='" + periodId + "'";
+                jdbcTemplate.execute(uptPeriod);
+                //同时删除映射task表数据
+                deleteMapTask1 = "DELETE from s_change_token_form_task where task_id = "+task.getId();
+                deleteMapTask2 = "DELETE from s_change_token_inventory_task where task_id = "+task.getId();
+                deleteMapTask3 = "DELETE from s_change_token_meter_task where task_id = "+task.getId();
+            }
+            //执行删除映射task表数据
+            if (StringUtils.isNotBlank(deleteMapTask1)){
+                jdbcTemplate.execute(deleteMapTask1);
+            }
+            if (StringUtils.isNotBlank(deleteMapTask2)){
+                jdbcTemplate.execute(deleteMapTask2);
+            }
+            if (StringUtils.isNotBlank(deleteMapTask3)){
+                jdbcTemplate.execute(deleteMapTask3);
+            }
+            //删除所有当前任务相关的映射附件表信息
+            jdbcTemplate.execute("DELETE from s_attachment_form_task where task_id = "+task.getId());
+
             jdbcTemplate.execute(delTaskPall);
             jdbcTemplate.execute(delTask);
             return R.success("成功");

+ 6 - 6
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialMeterFormServiceImpl.java

@@ -76,9 +76,9 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
         BeanUtils.copyProperties(dto,form);
         Long id = SnowFlakeUtil.getId();
         form.setId(id);
-        if (form.getPrice() != null && form.getMeterAmount() != null){
-            form.setMeterMoney(form.getPrice().multiply(form.getMeterAmount()).setScale(0, RoundingMode.HALF_UP));
-        }
+//        if (form.getPrice() != null && form.getMeterAmount() != null){
+//            form.setMeterMoney(form.getPrice().multiply(form.getMeterAmount()).setScale(0, RoundingMode.HALF_UP));
+//        }
         this.save(form);
         //保存附件信息
         List<AttachmentForm> fileList = dto.getFileList();
@@ -130,9 +130,9 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
         //保存材料计量单信息
         MaterialMeterForm form = new MaterialMeterForm();
         BeanUtils.copyProperties(dto,form);
-        if (form.getPrice() != null && form.getMeterAmount() != null){
-            form.setMeterMoney(form.getPrice().multiply(form.getMeterAmount()).setScale(0,RoundingMode.HALF_UP));
-        }
+//        if (form.getPrice() != null && form.getMeterAmount() != null){
+//            form.setMeterMoney(form.getPrice().multiply(form.getMeterAmount()).setScale(0,RoundingMode.HALF_UP));
+//        }
         this.updateById(form);
         //删除附件信息
         attachmentFormService.deleteByMasterId(form.getId());