package com.example.erp.service.pp; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.example.erp.entity.pp.ProductionScheduling; import com.example.erp.mapper.pp.ProductionSchedulingMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @DS("pp") public class ProductionSchedulingService { @Autowired ProductionSchedulingMapper productionSchedulingMapper; //未排产查询 public Map selectSchedulingSv(Integer pageNum, Integer pageSize, String selectTime1, String selectTime2, String orderIds, String processes, Integer state, ProductionScheduling productionScheduling ) { Integer offset = (pageNum - 1) * pageSize; Map map = new HashMap<>(); if("null".equals(orderIds)){ orderIds=""; } if ("null".equals(processes)){ processes=""; } if (state==2){//已排产 map.put("data", productionSchedulingMapper.selectOkSchedulingMp(offset, pageSize,selectTime1, selectTime2,orderIds,processes, productionScheduling)); map.put("total", productionSchedulingMapper.getOkPageTotal(offset, pageSize,selectTime1, selectTime2,orderIds,processes, productionScheduling)); }else if (state==1){//未排产 map.put("data", productionSchedulingMapper.selectNoSchedulingMp(offset, pageSize,selectTime1, selectTime2,orderIds,processes, productionScheduling)); map.put("total", productionSchedulingMapper.getPageTotal(offset, pageSize,selectTime1, selectTime2,orderIds,processes, productionScheduling)); } return map; } //首次查询排产数据 public Map selectLastScheduling(String selectTime1, String selectTime2,String processes,String orderId,ProductionScheduling productionScheduling ) { Map map = new HashMap<>(); map.put("process", productionSchedulingMapper.selectProcess()); return map; } public Boolean addSchedulingSv(Map object) { String userName = ""; if (object.get("userName") != null) { userName = object.get("userName").toString(); } String processes = ""; if (object.get("processes") != null) { processes = object.get("processes").toString(); } Integer maxId = productionSchedulingMapper.selectMaxId(); //查询订单id,并且自增 String formattedNumber = String.format("%02d", maxId+1); //格式化当前日期 java.util.Date currentDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); String formattedDate = dateFormat.format(currentDate); String schedulingId = "PC"+formattedDate+formattedNumber; List schedulinglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("scheduling")), ProductionScheduling.class); if (!schedulinglist.isEmpty()) { for (ProductionScheduling productionScheduling : schedulinglist) { productionSchedulingMapper.insertSelective(schedulingId,productionScheduling.getOrder().getOrderId(),productionScheduling.getOrderNumber(),productionScheduling.getTechnologyNumber(),processes,productionScheduling.getSchedulingQuantity(),productionScheduling.getScheduledStartTime(),productionScheduling.getPlanEndTime(),productionScheduling.getNotes()); } return true; } else { return false; } } public boolean deleteSchedulingSv(Map object) throws Exception { JSONObject objJson = new JSONObject(object); List Scheduling = JSONArray.parseArray(JSONObject.toJSONString(objJson.get("scheduling")), ProductionScheduling.class); if (!Scheduling.isEmpty()) { for (ProductionScheduling productionScheduling : Scheduling) { productionSchedulingMapper.deleteSchedulingMp(productionScheduling.getSchedulingId()); } return true; } else { return false; } } public boolean examineSchedulingSv(Map object) { String userName = ""; if (object.get("userName") != null) { userName = object.get("userName").toString(); } List schedulinglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("scheduling")), ProductionScheduling.class); if (!schedulinglist.isEmpty()) { for (ProductionScheduling productionScheduling : schedulinglist) { productionSchedulingMapper.examineSchedulingMp(productionScheduling.getSchedulingId(),userName,productionScheduling.getSchedulingQuantity(),productionScheduling.getNotes()); } return true; } else { return false; } } public boolean cancelReviewSchedulingSv(Map object) { List schedulinglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("scheduling")), ProductionScheduling.class); if (!schedulinglist.isEmpty()) { for (ProductionScheduling productionScheduling : schedulinglist) { productionSchedulingMapper.cancelReviewSchedulingMp(productionScheduling.getSchedulingId()); } return true; } else { return false; } } }