| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | List<ApsWeldSeamTemp> apsWeldSeamTemps = apsWeldSeamTempMapper.selectApsWeldSeamTempList(apsWeldSeamTemp); |
| | | int count = 0; |
| | | String[] ids = new String[apsWeldSeamTemps.size()]; |
| | | apsWeldSeamMapper.removeLastBatch(); |
| | | for (int i = 0; i < apsWeldSeamTemps.size(); i++) { |
| | | //记录临时表id |
| | | ids[i] = apsWeldSeamTemps.get(i).getId(); |
| | | ApsWeldSeam apsWeldSeam = new ApsWeldSeam(); |
| | | BeanUtils.copyProperties(apsWeldSeamTemps.get(i), apsWeldSeam); |
| | | //通过工单号查询是否存在数据 |
| | | ApsWeldSeam apsWeldSeam1 = apsWeldSeamMapper.selectApsWeldSeamByWorkOrderNo(apsWeldSeam.getWorkOrderNo()); |
| | | /*ApsWeldSeam apsWeldSeam1 = apsWeldSeamMapper.selectApsWeldSeamByWorkOrderNo(apsWeldSeam.getWorkOrderNo()); |
| | | //当工单号存在则更新数据否则插入数据 |
| | | if (apsWeldSeam1!=null&&apsWeldSeam1.getId()!=null) { |
| | | apsWeldSeam.setId(apsWeldSeam1.getId()); |
| | | apsWeldSeamMapper.updateApsWeldSeam(apsWeldSeam); |
| | | } else { |
| | | } else {*/ |
| | | //插入正式表,并记录 |
| | | apsWeldSeam.setId(IdUtils.fastUUID()); |
| | | apsWeldSeamMapper.insertApsWeldSeam(apsWeldSeam); |
| | | } |
| | | apsWeldSeam.setId(IdUtils.fastUUID()); |
| | | apsWeldSeamMapper.insertApsWeldSeam(apsWeldSeam); |
| | | //} |
| | | count++; |
| | | } |
| | | //插入数量与临时表查询一直则删除临时表数据 |
| | |
| | | @Override |
| | | public List<List<String>> weldSeamEchartsList(ApsWeldSeam apsWeldSeam) { |
| | | |
| | | List<ApsWeldSeam> queryDataList = new ArrayList<>(); |
| | | Map<String, Object> params = apsWeldSeam.getParams(); |
| | | if(ObjectUtils.isNotEmpty(params)){ |
| | | String startDay = params.get("startDay").toString(); |
| | | String endDay = params.get("endDay").toString(); |
| | | List<Long> produceYears = new ArrayList<>(); |
| | | List<Long> produceMonths = new ArrayList<>(); |
| | | String startQueryYear = startDay.substring(0,4); |
| | | String endQueryYear = endDay.substring(0,4); |
| | | String startQueryDay = startDay.substring(6,7); |
| | | String endQueryDay = endDay.substring(6,7); |
| | | produceYears.add(Long.valueOf(startQueryYear)); |
| | | produceYears.add(Long.valueOf(endQueryYear)); |
| | | produceMonths.add(Long.valueOf(startQueryDay)); |
| | | produceMonths.add(Long.valueOf(endQueryDay)); |
| | | apsWeldSeam.setProduceYears(produceYears); |
| | | apsWeldSeam.setProduceMonths(produceMonths); |
| | | List<String> dateList = getMonthBetweenDate(startDay,endDay); |
| | | dateList.forEach(item->{ |
| | | ApsWeldSeam weldSeam = new ApsWeldSeam(); |
| | | String queryYear = item.substring(0,4); |
| | | String queryMonth = item.substring(6,7); |
| | | weldSeam.setProduceYear(Long.valueOf(queryYear)); |
| | | weldSeam.setProduceMonth(Long.valueOf(queryMonth)); |
| | | queryDataList.add(weldSeam); |
| | | }); |
| | | } |
| | | List<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(apsWeldSeam); |
| | | Set monthSet=mapList.stream().map(e->e.get("produce_month").toString()).collect(Collectors.toSet()); |
| | | List<Map> mapList =apsWeldSeamMapper.weldSeamEcharts(queryDataList); |
| | | Set monthSet=mapList.stream().map(e->e.get("produce_month")).collect(Collectors.toSet()); |
| | | List monthList = new ArrayList(monthSet); |
| | | Collections.sort(monthList); |
| | | |
| | | List<List<String>> echartsList = new ArrayList<>(); |
| | | |
| | | Set<String> titleSet = new HashSet<>(); |
| | | List<String> title = new ArrayList<>(titleSet); |
| | | title.add("product"); |
| | | mapList.forEach(item->{ |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append(item.get("production_base")); |
| | |
| | | sb.append(item.get("work_order_name")); |
| | | sb.append("-"); |
| | | sb.append(item.get("classification_name")); |
| | | title.add(sb.toString()); |
| | | |
| | | titleSet.add(sb.toString()); |
| | | }); |
| | | List<String> title = new ArrayList<>(); |
| | | title.add("product"); |
| | | title.addAll(titleSet); |
| | | echartsList.add(title); |
| | | System.out.println(monthList); |
| | | monthList.forEach(month->{ |
| | | List<String> table = new ArrayList<>(); |
| | | table.add(month+"月"); |
| | |
| | | sb.append(value.get("work_order_name")); |
| | | sb.append("-"); |
| | | sb.append(value.get("classification_name")); |
| | | if(sb.toString().equals(title.get(i))){//列明 |
| | | if(sb.toString().equals(title.get(i)) && month==value.get("produce_month")){ |
| | | table.add(value.get("total_weld_seam").toString()); |
| | | } |
| | | } |
| | |
| | | }); |
| | | return echartsList; |
| | | } |
| | | |
| | | public static List<String> getMonthBetweenDate(String startTime, String endTime) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); |
| | | // 声明保存日期集合 |
| | | List<String> list = new ArrayList<>(); |
| | | try { |
| | | // 转化成日期类型 |
| | | Date startDate = sdf.parse(startTime); |
| | | Date endDate = sdf.parse(endTime); |
| | | |
| | | //用Calendar 进行日期比较判断 |
| | | Calendar calendar = Calendar.getInstance(); |
| | | while (startDate.getTime() <= endDate.getTime()) { |
| | | |
| | | // 把日期添加到集合 |
| | | list.add(sdf.format(startDate)); |
| | | |
| | | // 设置日期 |
| | | calendar.setTime(startDate); |
| | | |
| | | //把月数增加 1 |
| | | calendar.add(Calendar.MONTH, 1); |
| | | |
| | | // 获取增加后的日期 |
| | | startDate = calendar.getTime(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return list; |
| | | } |
| | | } |