| | |
| | | import com.example.erp.common.Constants; |
| | | import com.example.erp.dto.pp.OrderNumberTransferDTO; |
| | | import com.example.erp.entity.pp.*; |
| | | import com.example.erp.entity.sd.BasicData; |
| | | import com.example.erp.entity.sd.Order; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | | import com.example.erp.entity.sd.OrderProcessDetail; |
| | |
| | | import com.example.erp.mapper.mm.FinishedOperateLogMapper; |
| | | import com.example.erp.mapper.pp.*; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.example.erp.mapper.sd.OrderDetailMapper; |
| | | import com.example.erp.mapper.sd.OrderGlassDetailMapper; |
| | | import com.example.erp.mapper.sd.OrderMapper; |
| | | import com.example.erp.mapper.sd.OrderProcessDetailMapper; |
| | | import com.example.erp.mapper.sd.*; |
| | | import com.example.erp.mapper.userInfo.LogMapper; |
| | | import com.example.erp.service.sd.OrderProcessDetailService; |
| | | import com.example.erp.service.userInfo.LogService; |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | |
| | | private final SysErrorService sysErrorService; |
| | | private final FinishedOperateLogMapper finishedOperateLogMapper; |
| | | private final RestTemplate restTemplate; |
| | | private final PatchLogMapper patchLogMapper; |
| | | private final ReworkMapper reworkMapper; |
| | | private final BasicDateMapper basicDataMapper; |
| | | |
| | | |
| | | /*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) { |
| | |
| | | if (retrievedData!=null){ |
| | | Integer reviewedState = retrievedData.getReviewedState(); |
| | | //根据审核状态查询未审核数据 |
| | | if (reviewedState==1){//已审核 |
| | | // if (reviewedState==1){//已审核 |
| | | //不是第一道工序,查询报工数据 |
| | | List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess,laminating); |
| | | if(process.equals("中空")){ |
| | |
| | | }); |
| | | } |
| | | map.put("Detail",details ); |
| | | }else { |
| | | //不是第一道工序,查询报工数据 |
| | | List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess,laminating); |
| | | if(process.equals("中空")){ |
| | | String orderId = reportingWorkMapper.selectOrderid(processIdStr); |
| | | details.forEach( detail -> { |
| | | Integer glassId = orderGlassDetailMapper. |
| | | getMinIdByGroup(orderId, |
| | | String.valueOf(detail.get("order_number")), |
| | | String.valueOf(detail.get("group"))); |
| | | int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId"))); |
| | | if(listGlassId !=glassId){ |
| | | detail.put("rowClass","latter"); |
| | | } |
| | | }); |
| | | } |
| | | map.put("Detail",details ); |
| | | } |
| | | // }else { |
| | | // //不是第一道工序,查询报工数据 |
| | | // List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess,laminating); |
| | | // if(process.equals("中空")){ |
| | | // String orderId = reportingWorkMapper.selectOrderid(processIdStr); |
| | | // details.forEach( detail -> { |
| | | // Integer glassId = orderGlassDetailMapper. |
| | | // getMinIdByGroup(orderId, |
| | | // String.valueOf(detail.get("order_number")), |
| | | // String.valueOf(detail.get("group"))); |
| | | // int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId"))); |
| | | // if(listGlassId !=glassId){ |
| | | // detail.put("rowClass","latter"); |
| | | // } |
| | | // }); |
| | | // } |
| | | // map.put("Detail",details ); |
| | | // } |
| | | } |
| | | } |
| | | |
| | |
| | | map.put("historyTeams", reportingWorkMapper.historyTeamsMp(processIdStr, process)); |
| | | //历史工序 |
| | | map.put("historyProcess", reportingWorkMapper.SelectHistoryProcessMp(historyProcess, process)); |
| | | //是否合片工序 |
| | | map.put("laminating", laminating); |
| | | } |
| | | return map; |
| | | } |
| | |
| | | public Map<String, Object> SelectProcessSv(String userId) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | String process = reportingWorkMapper.selectUserProcess(userId); |
| | | //工序列表 |
| | | List<Map<String, Object>> processNameList = flowCardMapper.getProcessNameList(); |
| | | if (process==null) { |
| | | map.put("process", reportingWorkMapper.SelectProcessMp()); |
| | | } |
| | |
| | | map.put("process",reportingWorkMapper.getSelectProcessDuoqu() ); |
| | | } |
| | | } |
| | | |
| | | map.put("processNameList", processNameList); |
| | | return map; |
| | | } |
| | | |
| | |
| | | reportingWorkMapper.insert(reportingWork); |
| | | //副表循环插入,并且插入次破信息表。再根据次破信息修改订单玻璃流程表的完工数量与刺破数量 |
| | | reportingWorkDetails.forEach(reportingWorkDetail -> { |
| | | |
| | | reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + reportingWorkDetail.getCompletedQuantity()); |
| | | reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + reportingWorkDetail.getBreakageQuantity()); |
| | | int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus"); |
| | | reportingWorkDetail.setReportingWorkId(reportingWorkId); |
| | | List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails(); |
| | |
| | | |
| | | |
| | | }); |
| | | reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>() |
| | | .eq(ReportingWork::getId, reportingWork.getId())); |
| | | |
| | | //保存日志 |
| | | Log log = new Log(); |
| | |
| | | //获取报工工序是否为复合工程 |
| | | String laminating = reportingWorkMapper.getProcessLaminating(thisProcess); |
| | | //合片工序 |
| | | if (laminating.equals("laminating")){ |
| | | if (laminating.indexOf("step")!=-1){ |
| | | LambdaUpdateWrapper |
| | | <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper |
| | |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork)); |
| | | map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork)); |
| | | map.put("footSum" ,reportingWorkMapper.getFootSum(selectTime1, selectTime2, orderId,reportingWork)); |
| | | // map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork)); |
| | | map.put("total" ,reportingWorkMapper.getFootSum(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork)); |
| | | return map; |
| | | } |
| | | |
| | |
| | | } else { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } else { |
| | | return false; |
| | | } |
| | |
| | | map.put("data", reportingWorkMapper.selectQualityTestingMp(offset, pageSize, selectTime1, selectTime2, state, processId, reportingWork)); |
| | | map.put("total", reportingWorkMapper.getQualityPageTotal(offset, pageSize, selectTime1, selectTime2, state, processId, reportingWork)); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> qualityReviewSearchSv() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", reportingWorkMapper.qualityReviewSearchMp()); |
| | | return map; |
| | | } |
| | | |
| | |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | List<ReportingWorkTransfer> reportingWorkTransferList = reportingWorkTransferMapper |
| | | .selectList(new QueryWrapper<ReportingWorkTransfer>() |
| | | .eq("old_order", reportingWork.get("newOrderId")) |
| | | .eq("old_order_number", reportingWork.get("newOrderNumber")) |
| | | ); |
| | | if(!reportingWorkTransferList.isEmpty()){ |
| | | result.put("msg","新订单序号之前已转出报工数据,无法进行转入"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | |
| | | //获取旧订单报工数据汇总 |
| | | List<OrderProcessDetail> oldOrderProcessDetailForReport = orderProcessDetailMapper |
| | | .selectList(new QueryWrapper<OrderProcessDetail>() |
| | |
| | | .eq("order_number", reportingWork.get("oldOrderNumber")) |
| | | .gt("reporting_work_num",0) |
| | | ); |
| | | |
| | | if (oldOrderProcessDetailForReport.isEmpty()){ |
| | | result.put("msg","旧订单没有可转出的报工数据"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | List<String> oldOrderProcessIdList = new ArrayList<>(); |
| | | oldOrderProcessDetailList.forEach(oldOrderProcessDetail -> oldOrderProcessIdList.add(oldOrderProcessDetail.getProcessId())); |
| | | |
| | | //获取旧数据破损表是否存在破损 |
| | | List<DamageDetails> damageDetails = damageDetailsMapper.selectList( |
| | | new QueryWrapper<DamageDetails>() |
| | | .in("process_id",oldOrderProcessIdList) |
| | | .eq("order_number", reportingWork.get("oldOrderNumber")) |
| | | .eq("quantity",0) |
| | | ); |
| | | if(!damageDetails.isEmpty()){ |
| | | result.put("msg","旧订单存在报工未处理破损数据"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | //获取补片表是否存在补片未审核状态 |
| | | List<PatchLog> patchLogs = patchLogMapper.selectList( |
| | | new QueryWrapper<PatchLog>() |
| | | .eq("order_id", reportingWork.get("oldOrderId")) |
| | | .eq("order_sort", reportingWork.get("oldOrderNumber")) |
| | | .eq("review_status",0) |
| | | ); |
| | | if (patchLogs.isEmpty()){ |
| | | result.put("msg","旧订单存在补片未审核数据"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | List<Rework> reworks = reworkMapper.selectList( |
| | | new QueryWrapper<Rework>() |
| | | .eq("order_id", reportingWork.get("oldOrderId")) |
| | | .eq("order_sort", reportingWork.get("oldOrderNumber")) |
| | | .eq("review_status",0) |
| | | ); |
| | | if (patchLogs.isEmpty()){ |
| | | result.put("msg","旧订单存在返工未审核数据,请先审核报工后再进行转出"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | Map<String,Object> log = new HashMap<>(); |
| | | log.put("oldOrderBeforeChange",oldOrderProcessDetailForReport); |
| | |
| | | reportingWorkMapper.update(null,new UpdateWrapper<ReportingWork>() |
| | | .set("reviewed_state",3) |
| | | .eq("process_id",oldOrderProcessDetail.getProcessId()) |
| | | .gt("reviewed_state",0) |
| | | ); |
| | | |
| | | |
| | |
| | | orderNumberTransferList.add(orderNumberTransfer); |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | }); |
| | |
| | | if(response.getStatusCode() == HttpStatus.OK){ |
| | | OrderNumberTransferDTO responseBody = response.getBody(); |
| | | result.put("data",true); |
| | | return result; |
| | | }else{ |
| | | result.put("msg","连接mes响应超时"); |
| | | result.put("data",false); |
| | | return result; |
| | | } |
| | | |
| | | return result; |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> selectShiftQuantitySv(Map<String, Object> reportingWork) { |
| | | String creatorId = (String) reportingWork.get("userId"); |
| | | List<LocalDateTime> dateList = (List<LocalDateTime>) reportingWork.get("searchDate"); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | String startDate = LocalDateTime.now().with(LocalTime.MIN).format(formatter); |
| | | String endDate = LocalDateTime.now().format(formatter); |
| | | if (dateList.get(0)!=null){ |
| | | startDate = String.valueOf(dateList.get(0)); |
| | | } |
| | | if (dateList.get(1)!=null){ |
| | | endDate = String.valueOf(dateList.get(1)); |
| | | } |
| | | List<String> date = new ArrayList<>(); |
| | | date.add(startDate); |
| | | date.add(endDate); |
| | | Map<String, Object> result = new HashMap<>(); |
| | | BasicData basicData = basicDataMapper |
| | | .selectOne(new QueryWrapper<BasicData>().eq("basic_name", reportingWork.get("process"))); |
| | | result.put("data",orderProcessDetailMapper.selectShiftQuantitySv(creatorId, startDate, endDate,basicData.getNickname())); |
| | | result.put("date",date); |
| | | return result; |
| | | } |
| | | |
| | | public Map<String, Object> selectReportingWorkRecordByPhoneSv(Map<String,Object> reportingWork) { |
| | | List<LocalDateTime> dateList = (List<LocalDateTime>) reportingWork.get("searchDate"); |
| | | String startDate = LocalDate.now().minusDays(14).toString(); |
| | | String endDate = LocalDate.now().toString(); |
| | | if (dateList.get(0)!=null){ |
| | | startDate = String.valueOf(dateList.get(0)); |
| | | } |
| | | if (dateList.get(1)!=null){ |
| | | endDate = String.valueOf(dateList.get(1)); |
| | | } |
| | | List<String> date = new ArrayList<>(); |
| | | date.add(startDate); |
| | | date.add(endDate); |
| | | Map<String, Object> result = new HashMap<>(); |
| | | result.put("data",reportingWorkMapper.selectList( |
| | | new QueryWrapper<ReportingWork>().nested( |
| | | reportingWork.get("process")!=null, |
| | | wrapper-> wrapper.eq("creator_id",reportingWork.get("userId"))//当工序为空时,查询所有报工信息 |
| | | ) |
| | | .gt("reviewed_state",-1) |
| | | .between("date(reporting_work_time)",startDate,endDate) |
| | | .orderByDesc("id"))); |
| | | result.put("date",date); |
| | | |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | } |