Преглед на файлове

车间重复报工问题

seyason преди 1 година
родител
ревизия
8793022dc5

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanProcedureTotalController.java

@@ -31,8 +31,8 @@ public class PlanProcedureTotalController {
     }
 
     @RequestMapping("/getFillProcedureDetail")
-    public HttpRespMsg getFillProcedureDetail(Integer id, String createDate){
-        return planProcedureTotalService.getFillProcedureDetail(id, createDate);
+    public HttpRespMsg getFillProcedureDetail(Integer id, String createDate, boolean deleteDuplicate){
+        return planProcedureTotalService.getFillProcedureDetail(id, createDate, deleteDuplicate);
     }
 }
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/PlanProcedureTotalService.java

@@ -16,5 +16,6 @@ public interface PlanProcedureTotalService extends IService<PlanProcedureTotal>
 
     HttpRespMsg getReportForWorkList(String vehicleNum);
 
-    HttpRespMsg getFillProcedureDetail(Integer id, String createDate);
+    HttpRespMsg getFillProcedureDetail(Integer id, String createDate, boolean deleteDuplicate);
+
 }

+ 1 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java

@@ -160,4 +160,5 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg exportPlanDataWithUserId(String userId, String startDate, String endDate);
 
     HttpRespMsg fixFinishNumData();
+
 }

+ 22 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanProcedureTotalServiceImpl.java

@@ -7,6 +7,7 @@ import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.PlanProcedureTotalService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.service.ReportService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -47,6 +48,8 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
     @Resource
     private PlanSteelStampNumberMapper planSteelStampNumberMapper;
     @Resource
+    private ReportService reportService;
+    @Resource
     private ReportMapper reportMapper;
 
     @Override
@@ -106,7 +109,7 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
     }
 
     @Override
-    public HttpRespMsg getFillProcedureDetail(Integer id, String createDate) {
+    public HttpRespMsg getFillProcedureDetail(Integer id, String createDate, boolean deleteDuplicate) {
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         if (createDate == null) createDate = LocalDate.now().format(dtf);
         HttpRespMsg msg = new HttpRespMsg();
@@ -115,7 +118,24 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
 
         prodProcedureTeam.remove("steel_num_array");
         //道工序是否自己已经填过了,有的话取数据
-        Report oldReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("user_procedure_team_id", id).eq("creator_id", token).eq("create_date", createDate));
+        List<Report> oldReportList = reportMapper.selectList(new QueryWrapper<Report>().eq("user_procedure_team_id", id).eq("creator_id", token).eq("create_date", createDate));
+        Report oldReport = null;
+        if (oldReportList.size() > 1) {
+            if (deleteDuplicate) {
+                //带删除多余数据的指令,则删除多余数据
+                oldReport = oldReportList.get(0);
+                for (int i = 1; i < oldReportList.size(); i++) {
+                    Report item = oldReportList.get(i);
+                    reportService.deleteReport(""+item.getId());
+                }
+            } else {
+                //多条报工记录,返回错误信息
+                msg.setError("检测重复报工记录,是否删除多余数据?");
+                return msg;
+            }
+        } else if (oldReportList.size() > 0){
+            oldReport = oldReportList.get(0);
+        }
         if (oldReport != null) {
             prodProcedureTeam.put("oldReport", oldReport);
             prodProcedureTeam.put("finishNum", oldReport.getFinishNum());

+ 10 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -138,10 +138,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     public static final Object locker = new Object();
     public static int times = 0;
 
+    //同一个人的重复提交时间,不得超过1秒
+    public static volatile HashMap<String, Long>  userSubmitTime = new HashMap();
+
     @Override
     public synchronized HttpRespMsg submitReport(Report report, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
+        Long nowTime = System.currentTimeMillis();
+        Long lastSubmitTime = userSubmitTime.get(token);
+        if (lastSubmitTime != null && nowTime - lastSubmitTime < 1000) {
+            httpRespMsg.setError("已提交完成,请务重复提交");
+            return httpRespMsg;
+        }
+        userSubmitTime.put(token, nowTime);
         User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
         report.setCreatorId(token);
@@ -154,8 +164,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             httpRespMsg.setError("填报的件数小数点后不得超过2位");
             return httpRespMsg;
         }
-
-
         LocalDate targetDate = report.getCreateDate();
         report.setCompanyId(companyId);
         Plan plan = planMapper.selectById(report.getPlanId());

+ 0 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/task/TimingTask.java

@@ -121,8 +121,6 @@ public class TimingTask {
     }
 
 
-
-
     //将部门id转换为部门层级
     private String convertDepartmentIdToCascade(Integer id, List<Department> allDeptList) {
         StringBuilder cascade = new StringBuilder();

+ 16 - 4
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/fillReport.vue

@@ -222,12 +222,10 @@ export default {
           }
         }
       }
-      
       this.$axios.post("/report/submitReport", postData)
         .then(res => {
           this.saving = false;
           if (res.code == "ok") {
-            this.$toast.success('提交成功')
           } else {
             this.$toast.fail(res.msg);
           }
@@ -239,7 +237,7 @@ export default {
       //自动计算件数
       this.reportForm.finishNum = this.reportForm.checkedSteelNum.length;
     },
-    getMyPlanProcedureList() {
+    getMyPlanProcedureList(deleteDuplicate) {
       const { id, reportBoolean, date } = this.$route.query;
       let params = {
         id: id,
@@ -248,6 +246,9 @@ export default {
       if (this.reportDate) {
         params.createDate = this.reportDate;
       }
+      if (deleteDuplicate) {
+        params.deleteDuplicate = deleteDuplicate;
+      }
 
       this.$axios.post("/plan-procedure-total/getFillProcedureDetail", params)
         .then(res => {
@@ -265,7 +266,18 @@ export default {
               this.reportForm.checker_name = this.user.name;
             }
           } else {
-            this.$toast.fail(res.msg);
+            
+            //弹窗显示确认删除重复记录
+            if (res.msg.indexOf('重复报工') > 0) {
+              this.$dialog.confirm({
+                    title: '提示',
+                    message: res.msg
+                }).then(() => {
+                  this.getMyPlanProcedureList(true);
+                });
+            } else {
+              this.$toast.fail(res.msg);
+            }
           }
         }).catch(err => { this.$toast.clear(); });
     },