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.sd.OrderDetail; import com.example.erp.entity.sd.OrderGlassDetail; import com.example.erp.mapper.pp.WorkOrderMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.sql.Date; import java.time.LocalDate; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @DS("sd") public class WorkOrderService { @Autowired WorkOrderMapper workOrderMapper; //查询工单 public Map defaultDateWork(List selectDate, Integer state, OrderGlassDetail orderGlassDetail) { String endDate = LocalDate.now().toString(); String startDate = LocalDate.now().minusDays(15).toString(); if(selectDate !=null && selectDate.size()==2){ if(!selectDate.get(0).isEmpty()){ startDate = selectDate.get(0); } if(!selectDate.get(1).isEmpty()){ endDate = selectDate.get(1); } } Map map = new HashMap<>(); if (state == 1) {//已转工单 map.put("data", workOrderMapper.selectWordOrder(startDate, endDate, orderGlassDetail)); } else {//未转工单 map.put("data", workOrderMapper.selectWordOrderNo(startDate, endDate, orderGlassDetail)); } List list = new ArrayList<>(); list.add(startDate); list.add(endDate); map.put("selectDate",list); return map; } //转生产订单查询 public Map addDateWork(String orderId, OrderDetail orderDetail) { Map map = new HashMap<>(); map.put("data", workOrderMapper.addWordOrder(orderId, orderDetail)); return map; } //新增生产订单 public Boolean addOrderWorkSv(Map object) { String userName = ""; if (object.get("userName") != null) { userName = object.get("userName").toString(); } //定义生产订单号生成需要的条件 char lettr = 'A'; char letters = '1'; int count = 25; String productIdVl = ""; //将接收到的信息解析成list List orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderdetail")), OrderDetail.class); String orderId = orderDetaillist.get(0).getOrderId(); for (OrderDetail orderDetail : orderDetaillist) { if(orderDetail.getOrderId()!= orderId){ orderId = orderDetail.getOrderId(); letters = '1'; lettr = 'A'; } //生成生产订单号 for (int i = 0; i < count; i++) { letters = lettr++; productIdVl = orderDetail.getOrderId() + letters; //查询生成的生产订单号是否存在 Integer workCount = workOrderMapper.selectOrderNumber(productIdVl); if (workCount < 1) { break; } } //添加生产订单 workOrderMapper.addOrderWorkMp(productIdVl, orderDetail.getOrderId(), orderDetail.getProductId(), orderDetail.getProductName(), userName,orderDetail.getOrderGlassDetail().getProcess()); //避免同序号不同工艺修改 workOrderMapper.updateWorkIdMp(orderDetail.getOrderId(),userName); Integer state = 2; Integer states = 1; //查询该订单未转生产订单的条数 Integer noWorkCount = workOrderMapper.selectWorkCount(orderDetail.getOrderId()); if (noWorkCount == 0) { //条数为0修改转生产订单状态为2,否则为1 workOrderMapper.updateWorkType(orderDetail.getOrderId(), state); } else { workOrderMapper.updateWorkType(orderDetail.getOrderId(), states); } } return true; } //删除生产订单 public Boolean deleteOrderWorkSv(String orderId, String productionId) { if (!orderId.isEmpty() && !productionId.isEmpty()) { //查询该订单是否已经建立流程卡 Integer getProcessCard = workOrderMapper.selectProcessCard(orderId); if (getProcessCard == 0){ //删除订单小片表生产订单号 workOrderMapper.deleteOrderWorkMp(orderId, productionId); int state = 0; int states = 1; //查询该订单未转生产订单的条数 Integer noWorkCount = workOrderMapper.selectWorkCount(orderId); //查询该订单转生产订单的条数 Integer yesWorkCount = workOrderMapper.selectYesWorkCount(orderId); if (noWorkCount.equals(yesWorkCount)) {//判断订单是否全部转工单 workOrderMapper.updateWorkType(orderId, state);//全部 } else { workOrderMapper.updateWorkType(orderId, states);//部分 } return true; } else { return false; } } else { return false; } } }