Merge remote-tracking branch 'origin/master'
| | |
| | | import com.jcdm.main.bs.modelNumber.domain.BsModelNumber; |
| | | |
| | | /** |
| | | * æºååºå·Mapperæ¥å£ |
| | | * Mapperæ¥å£ |
| | | * |
| | | * @author jiang |
| | | * @date 2024-01-15 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.jcdm.main.bs.orderScheduling.Query; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class PrepareOnlineQuery { |
| | | |
| | | /** |
| | | * å·¥åç¼å· |
| | | */ |
| | | private String orderNo; |
| | | |
| | | /** |
| | | * è¿ä¿®åéæºå· |
| | | */ |
| | | private String engineNo; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.jcdm.main.bs.orderScheduling.controller; |
| | | |
| | | |
| | | import com.jcdm.common.core.controller.BaseController; |
| | | import com.jcdm.common.core.page.TableDataInfo; |
| | | import com.jcdm.main.bs.orderScheduling.Query.PrepareOnlineQuery; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.service.impl.BsOrderSchedulingServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.List; |
| | | |
| | | @RestController |
| | | @RequestMapping("/bs/prepareOnline") |
| | | public class PrepareOnlineController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BsOrderSchedulingServiceImpl bsOrderSchedulingService; |
| | | |
| | | |
| | | // @PreAuthorize("@ss.hasPermi('bs:orderScheduling:list')") |
| | | @PostMapping("/list") |
| | | public TableDataInfo list(@RequestBody PrepareOnlineQuery prepareOnlineQuery) |
| | | { |
| | | List<BsOrderScheduling> list = bsOrderSchedulingService.getPrepareOnlineList(prepareOnlineQuery); |
| | | return getDataTable(list); |
| | | } |
| | | } |
| | |
| | | @Excel(name = "å¤æ³¨") |
| | | private String remarks; |
| | | |
| | | public void setId(Long id) |
| | | /** CVTæ¥å·¥ */ |
| | | @Excel(name = "CVTæ¥å·¥") |
| | | private String report30; |
| | | |
| | | private String[] dateConditions; |
| | | |
| | | private String startTime; |
| | | |
| | | private String endTime; |
| | | |
| | | public String[] getDateConditions() { |
| | | return dateConditions; |
| | | } |
| | | |
| | | public void setDateConditions(String[] dateConditions) { |
| | | this.dateConditions = dateConditions; |
| | | } |
| | | |
| | | public String getStartTime() { |
| | | return startTime; |
| | | } |
| | | |
| | | public void setStartTime(String startTime) { |
| | | this.startTime = startTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public String getReport30() { |
| | | return report30; |
| | | } |
| | | |
| | | public void setReport30(String report30) { |
| | | this.report30 = report30; |
| | | } |
| | | |
| | | public void setId(Long id) |
| | | { |
| | | this.id = id; |
| | | } |
| | |
| | | package com.jcdm.main.bs.orderScheduling.mapper; |
| | | |
| | | import java.util.List; |
| | | import com.jcdm.main.bs.orderScheduling.Query.PrepareOnlineQuery; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 订åæ产Mapperæ¥å£ |
| | |
| | | public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling); |
| | | |
| | | /** |
| | | * æ¥è¯¢åç®±ä¸çº¿å表 |
| | | * |
| | | * @param prepareOnlineQuery 订åæ产 |
| | | * @return åç®±ä¸çº¿å表 |
| | | */ |
| | | public List<BsOrderScheduling> getPrepareOnlineList(PrepareOnlineQuery prepareOnlineQuery); |
| | | |
| | | /** |
| | | * æ°å¢è®¢åæ产 |
| | | * |
| | | * @param bsOrderScheduling 订åæ产 |
| | |
| | | package com.jcdm.main.bs.orderScheduling.service.impl; |
| | | |
| | | import java.util.List; |
| | | import com.jcdm.common.utils.DateUtils; |
| | | import com.jcdm.main.bs.orderScheduling.Query.PrepareOnlineQuery; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; |
| | | import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 订åæ产Serviceä¸å¡å±å¤ç |
| | |
| | | * @date 2024-01-13 |
| | | */ |
| | | @Service |
| | | public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService |
| | | public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService |
| | | { |
| | | @Autowired |
| | | private BsOrderSchedulingMapper bsOrderSchedulingMapper; |
| | |
| | | @Override |
| | | public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling) |
| | | { |
| | | if(bsOrderScheduling.getDateConditions()!=null){ |
| | | String[] conditions = bsOrderScheduling.getDateConditions(); |
| | | bsOrderScheduling.setStartTime(conditions[0]); |
| | | bsOrderScheduling.setEndTime(conditions[1]); |
| | | } |
| | | return bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ¥è¯¢åç®±ä¸çº¿å表 |
| | | * @param prepareOnlineQuery |
| | | * @return list |
| | | */ |
| | | public List<BsOrderScheduling> getPrepareOnlineList(PrepareOnlineQuery prepareOnlineQuery){ |
| | | return bsOrderSchedulingMapper.getPrepareOnlineList(prepareOnlineQuery); |
| | | } |
| | | /** |
| | | * æ°å¢è®¢åæ产 |
| | | * |
| | |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.jcdm.common.core.domain.entity.SysUser; |
| | | import com.jcdm.main.bs.workshop.service.IBsWorkshopInfoService; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import com.jcdm.main.bs.workshop.domain.BsWorkshopInfo; |
| | | import com.jcdm.common.utils.poi.ExcelUtil; |
| | | import com.jcdm.common.core.page.TableDataInfo; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | /** |
| | | * 车é´ä¿¡æ¯Controller123 |
| | |
| | | { |
| | | return toAjax(bsWorkshopInfoService.deleteBsWorkshopInfoByIds(ids)); |
| | | } |
| | | |
| | | @PostMapping("/importTemplate") |
| | | public void importTemplate(HttpServletResponse response) |
| | | { |
| | | ExcelUtil<BsWorkshopInfo> util = new ExcelUtil<>(BsWorkshopInfo.class); |
| | | util.importTemplateExcel(response, "车é´æ°æ®"); |
| | | } |
| | | |
| | | @PostMapping("/importData") |
| | | public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception |
| | | { |
| | | ExcelUtil<BsWorkshopInfo> util = new ExcelUtil<BsWorkshopInfo>(BsWorkshopInfo.class); |
| | | List<BsWorkshopInfo> workshopList = util.importExcel(file.getInputStream()); |
| | | String operName = getUsername(); |
| | | String message = bsWorkshopInfoService.importWrokshop(workshopList, updateSupport, operName); |
| | | return success(message); |
| | | } |
| | | } |
| | |
| | | package com.jcdm.main.bs.workshop.service; |
| | | |
| | | import java.util.List; |
| | | |
| | | import com.jcdm.common.core.domain.entity.SysUser; |
| | | import com.jcdm.main.bs.workshop.domain.BsWorkshopInfo; |
| | | |
| | | /** |
| | |
| | | * @return ç»æ |
| | | */ |
| | | public int deleteBsWorkshopInfoById(Long id); |
| | | |
| | | public String importWrokshop(List<BsWorkshopInfo> userList, Boolean isUpdateSupport, String operName); |
| | | |
| | | } |
| | |
| | | package com.jcdm.main.bs.workshop.service.impl; |
| | | |
| | | import java.util.List; |
| | | |
| | | import com.jcdm.common.core.domain.entity.SysUser; |
| | | import com.jcdm.common.exception.ServiceException; |
| | | import com.jcdm.common.utils.DateUtils; |
| | | import com.jcdm.common.utils.SecurityUtils; |
| | | import com.jcdm.common.utils.StringUtils; |
| | | import com.jcdm.common.utils.bean.BeanValidators; |
| | | import com.jcdm.main.bs.workshop.service.IBsWorkshopInfoService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | { |
| | | return bsWorkshopInfoMapper.deleteBsWorkshopInfoById(id); |
| | | } |
| | | |
| | | @Override |
| | | public String importWrokshop(List<BsWorkshopInfo> userList, Boolean isUpdateSupport, String operName) { |
| | | StringBuilder successMsg = new StringBuilder(); |
| | | for (BsWorkshopInfo info : userList) { |
| | | insertBsWorkshopInfo(info); |
| | | successMsg.append("<br/>" + info.getWorkshopName() + " 导å
¥æå"); |
| | | } |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.jcdm.main.bs.modelNumber.domain.BsModelNumber; |
| | | import com.jcdm.main.bs.modelNumber.service.IBsModelNumberService; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; |
| | | import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; |
| | |
| | | |
| | | @Autowired |
| | | private IBsOrderSchedulingService bsOrderSchedulingService; |
| | | |
| | | @Autowired |
| | | private IBsModelNumberService bsModelNumberService; |
| | | |
| | | /** |
| | | * æ¥è¯¢ç产工åå表 |
| | |
| | | DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | //å°æ¶é´è½¬å为对åºæ ¼å¼çå符串 |
| | | String fomateDate=date.format(formatter).toString(); |
| | | |
| | | |
| | | Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//å¼å§ç¼å· |
| | | Integer planQty = Math.toIntExact(omProductionOrdeInfo.getPlanQty());//计åæ°é |
| | | String dateTimeRule = omProductionOrdeInfo.getDateTimeRule(); |
| | | |
| | | for(int i=0;i<planQty;i++){ |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo()); |
| | | bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ()); |
| | | bsOrderScheduling.setEngineNo(omProductionOrdeInfo.getTypeZ() + " "+dateTimeRule+ StringUtils.leftPad(String.valueOf(startCode),3, "0")); |
| | | bsOrderScheduling.setProductionStatus("1"); |
| | | bsOrderScheduling.setOperator(getUserName()); |
| | | bsOrderScheduling.setOperateTime(fomateDate); |
| | | bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling); |
| | | startCode ++; |
| | | } |
| | | String engineNo = ""; |
| | | if(planQty>0) { |
| | | for (int i = 0; i < planQty; i++) { |
| | | engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo()); |
| | | bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ()); |
| | | bsOrderScheduling.setEngineNo(engineNo); |
| | | bsOrderScheduling.setProductionStatus("1"); |
| | | bsOrderScheduling.setOperator(getUserName()); |
| | | bsOrderScheduling.setOperateTime(fomateDate); |
| | | bsOrderScheduling.setProductType(omProductionOrdeInfo.getTypeL());//产åç±»å |
| | | bsOrderScheduling.setWhetherOrPrint("0"); |
| | | bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling); |
| | | startCode++; |
| | | } |
| | | |
| | | omProductionOrdeInfo.setOrderStatus("2");//æ´æ°å·¥åç¶æ |
| | | //æ°å¢æºååºå· |
| | | BsModelNumber bsModelNumber = new BsModelNumber(); |
| | | bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ()); |
| | | bsModelNumber.setModelDate(dateTimeRule); |
| | | bsModelNumber.setMaxnumValue((startCode - 1) + ""); |
| | | bsModelNumber.setSaveTime(fomateDate); |
| | | bsModelNumber.setLastNumber((startCode - 1) + ""); |
| | | bsModelNumberService.insertBsModelNumber(bsModelNumber); |
| | | } |
| | | //æ´æ°å·¥åç¶æ |
| | | omProductionOrdeInfo.setOrderStatus("2"); |
| | | return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo)); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * tableåä¸ç§»ä¸ç§» |
| | | * æ¥æ¶å·¥å |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('om:productionOrde:receive')") |
| | | @GetMapping("/getProductionNotice") |
| | | public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo) |
| | | { |
| | | ReceivingServices.insertWebserviceData(omProductionOrdeInfo.getProductionNotice()); |
| | | return AjaxResult.success(); |
| | | String productionNotice = omProductionOrdeInfo.getProductionNotice(); |
| | | List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); |
| | | if(omProductionOrdeInfos.size() == 0){ |
| | | try { |
| | | ReceivingServices.insertWebserviceData(productionNotice); |
| | | } catch (Exception e) { |
| | | return error("æ¥æ¶å¤±è´¥ï¼è¯·æ£æ¥éç¥åå·"); |
| | | } |
| | | }else { |
| | | return warn("该éç¥åå·²ç»æ¥æ¶å®æ¯ï¼ä¸è½éå¤æ¥æ¶ï¼"); |
| | | } |
| | | return AjaxResult.success("æ¥æ¶æåï¼"); |
| | | } |
| | | } |
| | |
| | | @Excel(name = "ç§ç±»") |
| | | private String typeZ; |
| | | |
| | | private String typeL; |
| | | |
| | | /** é¢çå段1 */ |
| | | private String spareField1; |
| | | |
| | |
| | | private String dateTimeRule; |
| | | private String startCode; |
| | | |
| | | private String[] dateConditions; |
| | | |
| | | private String startTime; |
| | | |
| | | private String endTime; |
| | | |
| | | public String[] getDateConditions() { |
| | | return dateConditions; |
| | | } |
| | | |
| | | public void setDateConditions(String[] dateConditions) { |
| | | this.dateConditions = dateConditions; |
| | | } |
| | | |
| | | public String getStartTime() { |
| | | return startTime; |
| | | } |
| | | |
| | | public void setStartTime(String startTime) { |
| | | this.startTime = startTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public String getDateTimeRule() { |
| | | return dateTimeRule; |
| | |
| | | return typeZ; |
| | | } |
| | | |
| | | public String getTypeL() { |
| | | return typeL; |
| | | } |
| | | |
| | | public void setTypeL(String typeL) { |
| | | this.typeL = typeL; |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public List<OmProductionOrdeInfo> selectOmProductionOrdeInfoList(OmProductionOrdeInfo omProductionOrdeInfo) |
| | | { |
| | | if(omProductionOrdeInfo.getDateConditions()!=null){ |
| | | String[] conditions = omProductionOrdeInfo.getDateConditions(); |
| | | omProductionOrdeInfo.setStartTime(conditions[0]); |
| | | omProductionOrdeInfo.setEndTime(conditions[1]); |
| | | } |
| | | return omProductionOrdeInfoMapper.selectOmProductionOrdeInfoList(omProductionOrdeInfo); |
| | | } |
| | | |
| | |
| | | public int insertOmProductionOrdeInfo(OmProductionOrdeInfo omProductionOrdeInfo) |
| | | { |
| | | omProductionOrdeInfo.setCreateTime(DateUtils.getNowDate()); |
| | | Integer streamNumber = omProductionOrdeInfoMapper.getMaxStreamNumber(); |
| | | omProductionOrdeInfo.setStreamNumber(String.valueOf(streamNumber+1)); |
| | | return omProductionOrdeInfoMapper.insertOmProductionOrdeInfo(omProductionOrdeInfo); |
| | | } |
| | | |
| | |
| | | package com.jcdm.main.sc.stationConf.controller; |
| | | |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.jcdm.main.util.IpInfoUtils; |
| | | import org.aspectj.weaver.loadtime.Aj; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | |
| | | { |
| | | return toAjax(scStationConfService.deleteScStationConfByIds(ids)); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢ip |
| | | */ |
| | | @GetMapping("/getIp") |
| | | public AjaxResult getIp(HttpServletRequest request) |
| | | { |
| | | return AjaxResult.success(IpInfoUtils.getIpAddr(request)); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.jcdm.main.util; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.net.InetAddress; |
| | | import java.net.UnknownHostException; |
| | | |
| | | /** |
| | | * ipå·¥å
·ç±» |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2018/9/27 ä¸å10:47 |
| | | */ |
| | | public class IpInfoUtils { |
| | | |
| | | /** |
| | | * è·å客æ·ç«¯IPå°å |
| | | */ |
| | | public static String getIpAddr(HttpServletRequest request) { |
| | | String ip = request.getHeader("x-forwarded-for"); |
| | | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { |
| | | ip = request.getHeader("Proxy-Client-IP"); |
| | | } |
| | | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { |
| | | ip = request.getHeader("WL-Proxy-Client-IP"); |
| | | } |
| | | if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { |
| | | ip = request.getRemoteAddr(); |
| | | if (ip.equals("127.0.0.1")) { |
| | | //æ ¹æ®ç½å¡åæ¬æºé
ç½®çIP |
| | | InetAddress inet = null; |
| | | try { |
| | | inet = InetAddress.getLocalHost(); |
| | | } catch (UnknownHostException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | ip = inet.getHostAddress(); |
| | | } |
| | | } |
| | | // 对äºéè¿å¤ä¸ªä»£ççæ
åµï¼ç¬¬ä¸ä¸ªIP为客æ·ç«¯çå®IP,å¤ä¸ªIPæç
§','åå² |
| | | if (ip != null && ip.length() > 15) { |
| | | if (ip.indexOf(",") > 0) { |
| | | ip = ip.substring(0, ip.indexOf(",")); |
| | | } |
| | | } |
| | | |
| | | if ("0:0:0:0:0:0:0:1".equals(ip)) { |
| | | ip = "127.0.0.1"; |
| | | } |
| | | |
| | | return ip; |
| | | } |
| | | |
| | | /** |
| | | * è·å客æ·ç«¯ä¸»æºå称 |
| | | */ |
| | | public static String getHostName() { |
| | | try { |
| | | return InetAddress.getLocalHost().getHostName(); |
| | | } catch (UnknownHostException e) { |
| | | } |
| | | return "æªç¥"; |
| | | } |
| | | } |
| | |
| | | <if test="updateUser != null and updateUser != ''"> and update_user = #{updateUser}</if> |
| | | <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> |
| | | </where> |
| | | ORDER BY save_time DESC |
| | | </select> |
| | | |
| | | <select id="selectBsModelNumberById" parameterType="Long" resultMap="BsModelNumberResult"> |
| | |
| | | <result property="updateUser" column="update_user" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="remarks" column="remarks" /> |
| | | <result property="report30" column="report_30" /> |
| | | |
| | | </resultMap> |
| | | |
| | | <sql id="selectBsOrderSchedulingVo"> |
| | | select id, order_no, engine_no, product_type, model, production_status, working_hours, current_workstation, quality_status, whether_or_print, report_10, report_20, combined_box_time, final_assembly_time, operator, operate_time, status, spare_field_1, spare_field_2, spare_field_3, spare_field_4, create_user, create_time, update_user, update_time, remarks from bs_order_scheduling |
| | | select id, order_no, engine_no, product_type, model, production_status, working_hours, current_workstation, quality_status, whether_or_print, report_10, report_20, combined_box_time, final_assembly_time, operator, operate_time, status, spare_field_1, spare_field_2, spare_field_3, spare_field_4, create_user, create_time, update_user, update_time, remarks, report_30 from bs_order_scheduling |
| | | </sql> |
| | | |
| | | <select id="selectBsOrderSchedulingList" parameterType="BsOrderScheduling" resultMap="BsOrderSchedulingResult"> |
| | |
| | | <if test="createUser != null and createUser != ''"> and create_user = #{createUser}</if> |
| | | <if test="updateUser != null and updateUser != ''"> and update_user = #{updateUser}</if> |
| | | <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> |
| | | <if test="report30 != null and report30 != ''"> and report_30 = #{report30}</if> |
| | | <if test="dateConditions != null and dateConditions != ''"> and operate_time BETWEEN #{startTime} AND #{endTime}</if> |
| | | |
| | | |
| | | </where> |
| | | </select> |
| | | |
| | |
| | | <include refid="selectBsOrderSchedulingVo"/> |
| | | where id = #{id} |
| | | </select> |
| | | |
| | | <select id="getPrepareOnlineList" resultType="com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling"> |
| | | select bos.* from bs_order_scheduling bos |
| | | <where> |
| | | <if test="prepareOnlineQuery.orderNo != null and prepareOnlineQuery.orderNo != '' "> |
| | | and bos.order_no = #{prepareOnlineQuery.orderNo} |
| | | </if> |
| | | <if test="prepareOnlineQuery.engineNo != null and prepareOnlineQuery.engineNo != '' "> |
| | | and bos.engine_no = #{prepareOnlineQuery.engineNo} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | |
| | | <insert id="insertBsOrderScheduling" parameterType="BsOrderScheduling" useGeneratedKeys="true" keyProperty="id"> |
| | | insert into bs_order_scheduling |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | |
| | | <if test="updateUser != null">update_user,</if> |
| | | <if test="updateTime != null">update_time,</if> |
| | | <if test="remarks != null">remarks,</if> |
| | | <if test="report30 != null">report_30,</if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="orderNo != null">#{orderNo},</if> |
| | |
| | | <if test="updateUser != null">#{updateUser},</if> |
| | | <if test="updateTime != null">#{updateTime},</if> |
| | | <if test="remarks != null">#{remarks},</if> |
| | | </trim> |
| | | <if test="report30 != null">#{report30},</if> |
| | | |
| | | </trim> |
| | | </insert> |
| | | |
| | | <update id="updateBsOrderScheduling" parameterType="BsOrderScheduling"> |
| | |
| | | <if test="updateUser != null">update_user = #{updateUser},</if> |
| | | <if test="updateTime != null">update_time = #{updateTime},</if> |
| | | <if test="remarks != null">remarks = #{remarks},</if> |
| | | <if test="report30 != null">report_30 = #{report30},</if> |
| | | |
| | | </trim> |
| | | where id = #{id} |
| | | </update> |
| | |
| | | <if test="softwareVersionCode != null and softwareVersionCode != ''"> and software_version_code like concat('%', #{softwareVersionCode}, '%')</if> |
| | | <if test="productCompanyCode != null and productCompanyCode != ''"> and product_company_code like concat('%', #{productCompanyCode}, '%')</if> |
| | | <if test="productionNotice != null and productionNotice != ''"> and production_notice like concat('%', #{productionNotice}, '%')</if> |
| | | <if test="dateConditions != null and dateConditions != ''"> and create_time BETWEEN #{startTime} AND #{endTime}</if> |
| | | |
| | | </where> |
| | | ORDER BY stream_number DESC |
| | |
| | | "clipboard": "2.0.8", |
| | | "core-js": "3.25.3", |
| | | "echarts": "5.4.0", |
| | | "element-ui": "2.15.13", |
| | | "element-ui": "^2.15.13", |
| | | "file-saver": "2.0.5", |
| | | "fuse.js": "6.4.3", |
| | | "highlight.js": "9.18.5", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // æ¥è¯¢å表 |
| | | export function listTechnologyRoute(query) { |
| | | return request({ |
| | | url: '/bs/technologyRoute/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢Ip |
| | | export function getIp() { |
| | | return request({ |
| | | url: '/sc/stationConf/getIp', |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢å·¥ä½ç»ç«¯é
ç½®è¯¦ç» |
| | | export function getStationConf(id) { |
| | | return request({ |
| | |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/main/orderScheduling-data', |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ['bs:workReport:list'], |
| | | children: [ |
| | | { |
| | | path: 'index', |
| | | component: () => import('@/views/main/bs/orderScheduling/index'), |
| | | name: 'Data', |
| | | meta: { title: 'æ¥å·¥è®°å½è¡¨', activeMenu: '/main/bs/orderScheduling' } |
| | | } |
| | | ] |
| | | }, |
| | | ] |
| | | |
| | | // é²æ¢è¿ç»ç¹å»å¤æ¬¡è·¯ç±æ¥é |
| | |
| | | </el-table-column> |
| | | <el-table-column label="å建ç¨æ·" width="130" align="center" prop="createUser"> |
| | | </el-table-column> |
| | | <el-table-column label="å建æ¶é´" width="150" align="center" prop="createTime"> |
| | | <el-table-column label="å建æ¶é´" width="160" align="center" prop="createTime"> |
| | | </el-table-column> |
| | | <el-table-column label="æ´æ¹ç¨æ·" width="130" align="center" prop="updateUser"> |
| | | </el-table-column> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="产ååå·" align="center" prop="typeZ" width="150"> |
| | | <el-table-column label="æºå" align="center" prop="typeZ" width="150"> |
| | | </el-table-column> |
| | | <el-table-column label="ç¹æ®ä»£ç " align="center" prop="mark" width="120"> |
| | | </el-table-column> |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æ大å¼" prop="maxnumValue"> |
| | | <el-input |
| | | v-model="queryParams.maxnumValue" |
| | | placeholder="请è¾å
¥æ大å¼" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸æ¬¡çç¼å·" prop="lastNumber"> |
| | | <!-- <el-form-item label="æ大å¼" prop="maxnumValue">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.maxnumValue"--> |
| | | <!-- placeholder="请è¾å
¥æ大å¼"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label-width="100" label="ä¸æ¬¡çç¼å·" prop="lastNumber"> |
| | | <el-input |
| | | v-model="queryParams.lastNumber" |
| | | placeholder="请è¾å
¥ä¸æ¬¡çç¼å·" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-form-item>--> |
| | | <!-- <el-form-item label="ç¶æ" prop="status">--> |
| | | <!-- <el-select v-model="queryParams.status" placeholder="请éæ©ç¶æ" clearable>--> |
| | | |
| | |
| | | <!-- </el-form-item>--> |
| | | <el-form-item style="float: right"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> |
| | | <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">é«çº§æ¥è¯¢</el-button> |
| | | <!-- <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">é«çº§æ¥è¯¢</el-button>--> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <!-- <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | </el-row>--> |
| | | |
| | | <el-table border v-loading="loading" :data="modelNumberList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="ID" align="center" prop="id" /> |
| | | <!-- <el-table-column label="ID" align="center" prop="id" />--> |
| | | <el-table-column label="æºå" align="center" prop="model"> |
| | | |
| | | </el-table-column> |
| | |
| | | <!-- <el-table-column label="å¤æ³¨" align="center" prop="remarks">--> |
| | | |
| | | <!-- </el-table-column>--> |
| | | <el-table-column fixed="right" width="200" label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <!-- <el-table-column fixed="right" width="200" label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | |
| | | v-hasPermi="['bs:modelNumber:remove']" |
| | | >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column>--> |
| | | </el-table> |
| | | </el-card> |
| | | |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="åå¨æºå·" prop="engineNo"> |
| | | <el-input |
| | | v-model="queryParams.engineNo" |
| | | placeholder="请è¾å
¥åå¨æºå·" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æºå" prop="model"> |
| | | <el-input |
| | | v-model="queryParams.model" |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="å·¥æ¶" prop="workingHours"> |
| | | <el-input |
| | | v-model="queryParams.workingHours" |
| | | placeholder="请è¾å
¥å·¥æ¶" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | <el-form-item label="ç产ç¶æ" prop="productionStatus"> |
| | | <el-select v-model="queryParams.productionStatus" placeholder="请éæ©å·¥åç¶æ" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.order_scheduling_produce_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å½åå·¥ä½" prop="currentWorkstation"> |
| | | <el-input |
| | | v-model="queryParams.currentWorkstation" |
| | | placeholder="请è¾å
¥å½åå·¥ä½" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¯å¦æå°" prop="whetherOrPrint"> |
| | | <el-input |
| | | v-model="queryParams.whetherOrPrint" |
| | | placeholder="请è¾å
¥æ¯å¦æå°" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="10æ¥å·¥" prop="report10"> |
| | | <el-input |
| | | v-model="queryParams.report10" |
| | | placeholder="请è¾å
¥10æ¥å·¥" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="20æ¥å·¥" prop="report20"> |
| | | <el-input |
| | | v-model="queryParams.report20" |
| | | placeholder="请è¾å
¥20æ¥å·¥" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æä½äºº" prop="operator"> |
| | | <el-input |
| | | v-model="queryParams.operator" |
| | | placeholder="请è¾å
¥æä½äºº" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item label="é¢çå段1" prop="spareField1">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.spareField1"--> |
| | | <!-- placeholder="请è¾å
¥é¢çå段1"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="é¢çå段2" prop="spareField2">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.spareField2"--> |
| | | <!-- placeholder="请è¾å
¥é¢çå段2"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="é¢çå段3" prop="spareField3">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.spareField3"--> |
| | | <!-- placeholder="请è¾å
¥é¢çå段3"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="é¢çå段4" prop="spareField4">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.spareField4"--> |
| | | <!-- placeholder="请è¾å
¥é¢çå段4"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="å建ç¨æ·" prop="createUser">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.createUser"--> |
| | | <!-- placeholder="请è¾å
¥å建ç¨æ·"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="æ´æ¹ç¨æ·" prop="updateUser">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.updateUser"--> |
| | | <!-- placeholder="请è¾å
¥æ´æ¹ç¨æ·"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="å¤æ³¨" prop="remarks">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.remarks"--> |
| | | <!-- placeholder="请è¾å
¥å¤æ³¨"--> |
| | | <!-- clearable--> |
| | | <!-- @keyup.enter.native="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item style="float: right"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> |
| | | <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">é«çº§æ¥è¯¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> |
| | | <el-form-item label="åå¨æºå·" prop="engineNo"> |
| | | <el-input |
| | | v-model="queryParams.engineNo" |
| | | placeholder="请è¾å
¥åå¨æºå·" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="è´¨éç¶æ" prop="qualityStatus"> |
| | | <el-select v-model="queryParams.qualityStatus" placeholder="请éæ©è´¨éç¶æ" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.quality_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦æå°" prop="whetherOrPrint"> |
| | | <el-select v-model="queryParams.whetherOrPrint" placeholder="请éæ©æ¯å¦æå°" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.print_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <br/> |
| | | <el-form-item label="åç®±æ¥å·¥" prop="report10"> |
| | | <el-input |
| | | v-model="queryParams.report10" |
| | | placeholder="请è¾å
¥åç®±æ¥å·¥" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æ»è£
æ¥å·¥" prop="report20"> |
| | | <el-input |
| | | v-model="queryParams.report20" |
| | | placeholder="请è¾å
¥æ»è£
æ¥å·¥" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="CVTæ¥å·¥" prop="report30"> |
| | | <el-input |
| | | v-model="queryParams.report30" |
| | | placeholder="请è¾å
¥CVTæ¥å·¥" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <br/> |
| | | <el-form-item label="æä½æ¶é´" prop="operateTime"> |
| | | <el-date-picker |
| | | v-model="queryParams.dateConditions" |
| | | type="datetimerange" |
| | | :picker-options="pickerOptions" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | align="right"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | |
| | | |
| | | <el-table border v-loading="loading" :data="orderSchedulingList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="ID" align="center" prop="id" /> |
| | | <el-table-column label="订åç¼å·" align="center" prop="orderNo"> |
| | | <el-table-column label="ç产订å" align="center" prop="orderNo" width="130"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="åå¨æºå·" align="center" prop="engineNo"> |
| | | <el-table-column label="åå¨æºå·" align="center" prop="engineNo" width="150"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="产åç±»å" align="center" prop="productType"> |
| | | |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.material_type" :value="scope.row.productType"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æºå" align="center" prop="model"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="ç产ç¶æ" align="center" prop="productionStatus"> |
| | | |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.order_scheduling_produce_status" :value="scope.row.productionStatus"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å·¥æ¶" align="center" prop="workingHours"> |
| | | |
| | |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="è´¨éç¶æ" align="center" prop="qualityStatus"> |
| | | |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.quality_status" :value="scope.row.qualityStatus"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦æå°" align="center" prop="whetherOrPrint"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.print_status" :value="scope.row.whetherOrPrint"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åç®±æ¥å·¥" align="center" prop="report10"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="10æ¥å·¥" align="center" prop="report10"> |
| | | <el-table-column label="æ»è£
æ¥å·¥" align="center" prop="report20"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="20æ¥å·¥" align="center" prop="report20"> |
| | | <el-table-column label="CVTæ¥å·¥" align="center" prop="report30"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="åç®±ä¸çº¿" align="center" prop="combinedBoxTime"> |
| | |
| | | <el-table-column label="æä½äºº" align="center" prop="operator"> |
| | | |
| | | </el-table-column> |
| | | <el-table-column label="æä½æ¶é´" align="center" prop="operateTime"> |
| | | <el-table-column label="æä½æ¶é´" align="center" prop="operateTime" width="160"> |
| | | |
| | | </el-table-column> |
| | | <!-- <el-table-column label="ç¶æ" align="center" prop="status">--> |
| | |
| | | <el-form-item label="æ¯å¦æå°" prop="whetherOrPrint"> |
| | | <el-input v-model="form.whetherOrPrint" placeholder="请è¾å
¥æ¯å¦æå°" /> |
| | | </el-form-item> |
| | | <el-form-item label="10æ¥å·¥" prop="report10"> |
| | | <el-input v-model="form.report10" placeholder="请è¾å
¥10æ¥å·¥" /> |
| | | <el-form-item label="åç®±æ¥å·¥" prop="report10"> |
| | | <el-input v-model="form.report10" placeholder="请è¾å
¥åç®±æ¥å·¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="20æ¥å·¥" prop="report20"> |
| | | <el-input v-model="form.report20" placeholder="请è¾å
¥20æ¥å·¥" /> |
| | | <el-form-item label="æ»è£
æ¥å·¥" prop="report20"> |
| | | <el-input v-model="form.report20" placeholder="请è¾å
¥æ»è£
æ¥å·¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="30æ¥å·¥" prop="report20"> |
| | | <el-input v-model="form.report30" placeholder="请è¾å
¥30æ¥å·¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="æä½äºº" prop="operator"> |
| | | <el-input v-model="form.operator" placeholder="请è¾å
¥æä½äºº" /> |
| | |
| | | |
| | | export default { |
| | | name: "OrderScheduling", |
| | | dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type'], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | advancedShowSearch: false, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | |
| | | spareField4: null, |
| | | createUser: null, |
| | | updateUser: null, |
| | | remarks: null |
| | | remarks: null, |
| | | dateConditions: [], |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | |
| | | id: [ |
| | | { required: true, message: "IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | } |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: 'æè¿ä¸å¨', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: 'æè¿ä¸ä¸ªæ', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: 'æè¿ä¸ä¸ªæ', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }] |
| | | }, |
| | | value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)], |
| | | value2: '' |
| | | }; |
| | | }, |
| | | created() { |
| | | let workOrderNo = this.$route.query.workOrderNo; |
| | | this.queryParams.orderNo = workOrderNo |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | advancedQuery(){ |
| | | this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; |
| | | }, |
| | | /** æ¥è¯¢è®¢åæ产å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | console.log(this.queryParams) |
| | | listOrderScheduling(this.queryParams).then(response => { |
| | | this.orderSchedulingList = response.rows; |
| | | this.total = response.total; |
| | |
| | | createTime: null, |
| | | updateUser: null, |
| | | updateTime: null, |
| | | remarks: null |
| | | remarks: null, |
| | | report30: null |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | this.$modal.msgSuccess(this.queryParams.operateTime); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="mini" |
| | | @click="handleImport" |
| | | >导å
¥</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> |
| | | <el-upload |
| | | ref="upload" |
| | | :limit="1" |
| | | accept=".xlsx, .xls" |
| | | :headers="upload.headers" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" |
| | | :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" |
| | | :on-success="handleFileSuccess" |
| | | :auto-upload="false" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æ件æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | <div class="el-upload__tip text-center" slot="tip"> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-checkbox v-model="upload.updateSupport" /> æ¯å¦æ´æ°å·²ç»åå¨ç车é´æ°æ® |
| | | </div> |
| | | <span>ä»
å
许导å
¥xlsãxlsxæ ¼å¼æ件ã</span> |
| | | <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">ä¸è½½æ¨¡æ¿</el-link> |
| | | </div> |
| | | </el-upload> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitFileForm">ç¡® å®</el-button> |
| | | <el-button @click="upload.open = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listWorkshop, getWorkshop, delWorkshop, addWorkshop, updateWorkshop } from "@/api/main/bs/workshop/workshop"; |
| | | import {getToken} from "@/utils/auth"; |
| | | |
| | | export default { |
| | | name: "Workshop", |
| | |
| | | workshopName: [ |
| | | { required: true, message: "车é´å称ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | } |
| | | }, |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | open: false, |
| | | // å¼¹åºå±æ é¢ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | title: "", |
| | | // æ¯å¦ç¦ç¨ä¸ä¼ |
| | | isUploading: false, |
| | | // æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | updateSupport: 0, |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/bs/workshop/importData" |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | // æ交ä¸ä¼ æ件 |
| | | submitFileForm() { |
| | | this.$refs.upload.submit(); |
| | | }, |
| | | /** ä¸è½½æ¨¡æ¿æä½ */ |
| | | importTemplate() { |
| | | this.download('bs/workshop/importTemplate', { |
| | | }, `车é´ä¿¡æ¯_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | // æ件ä¸ä¼ æåå¤ç |
| | | handleFileSuccess(response, file, fileList) { |
| | | this.upload.open = false; |
| | | this.upload.isUploading = false; |
| | | this.$refs.upload.clearFiles(); |
| | | this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导å
¥ç»æ", { dangerouslyUseHTMLString: true }); |
| | | this.getList(); |
| | | }, |
| | | // æ件ä¸ä¼ ä¸å¤ç |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | }, |
| | | /** 导å
¥æé®æä½ */ |
| | | handleImport() { |
| | | this.upload.title = "车é´å¯¼å
¥"; |
| | | this.upload.open = true; |
| | | }, |
| | | advancedQuery(){ |
| | | this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; |
| | | }, |
| | |
| | | <el-row :gutter="3"> |
| | | <el-col :span="6"> |
| | | <el-card shadow="always"> |
| | | CFMOTO |
| | | <img style="width: 200px;height: 50px; margin-left: 40px; margin-top: 0px" src="@/assets/logo/jcdm2.png" alt="dark"> |
| | | <span style="margin-left: 66px; font-weight: bold">{{currentTime}}</span> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-card shadow="always"> |
| | | {{productCode}} |
| | | <span class="centerText" style="margin-top: 26px">{{locationCode}}</span> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="15"> |
| | | <el-card shadow="always"> |
| | | è£
å¯è½´,æ¨å |
| | | <span class="centerText">{{locationName}}</span> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="6"> |
| | | <div style="height: 600px;overflow: auto;"> |
| | | <div class="container" style="height: 50px;background-color: #00afff;margin-bottom: 10px"> |
| | | <span class="centered">å±
ä¸ææ¬</span> |
| | | <span class="centered">ä½ä¸æµç¨</span> |
| | | </div> |
| | | <div v-for="(item,index) in tableData" :key="item.sort" class="outerDiv" :id="'outerDiv'+index"> |
| | | <div class="innerDiv1"> |
| | |
| | | <el-col :span="20"> |
| | | <el-card style="height: 600px" shadow="always"> |
| | | <el-row style="height: 100px"> |
| | | {{address}} |
| | | <span style="color: #31b431;font-size: 30px;font-weight: bold">{{address}}</span> |
| | | </el-row> |
| | | <el-row style="height: 400px"> |
| | | <el-image style="height: 390px;width: 960px" :src="src"></el-image> |
| | | <!-- {{src}}--> |
| | | </el-row> |
| | | <el-row style="height: 100px"> |
| | | <el-button type="primary" @click="backClick()" style="float: left" icon="el-icon-arrow-left">ä¸ä¸æ¥</el-button> |
| | | <el-button type="primary" @click="nextStep()" style="float: right">ä¸ä¸æ¥<i class="el-icon-arrow-right el-icon--right"></i></el-button> |
| | | <el-button type="primary" @click="backClick()" style="height: 50px; width: 130px; font-size: 20px; float: left" icon="el-icon-d-arrow-left">ä¸ä¸æ¥</el-button> |
| | | <el-button type="primary" @click="nextStep()" style="height: 50px; width: 130px; font-size: 20px; float: right">ä¸ä¸æ¥<i class="el-icon-d-arrow-right"></i></el-button> |
| | | </el-row> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <el-card style="height: 600px" shadow="always"> |
| | | <el-row style="height: 100px;margin-top: 100px"> |
| | | <el-button type="primary" @click="processDocuments()" style="float: left" icon="el-icon-folder-opened">å·¥èºæ件</el-button> |
| | | <el-button type="primary" @click="processDocuments()" style="height: 50px; width: 130px; font-size: 20px; float: left" icon="el-icon-folder-opened">å·¥èºæ件</el-button> |
| | | </el-row> |
| | | <el-row style="height: 50px;margin-top: 5px"> |
| | | <el-button type="primary" @click="changeProducts('2V91')" style="width: 100px" icon="el-icon-s-unfold">2V91</el-button> |
| | | <el-row style="height: 80px;margin-top: 5px"> |
| | | <el-button type="success" @click="changeProducts('2V91')" style="height: 50px; width: 130px; font-size: 20px; float: left" icon="el-icon-s-unfold">2V91</el-button> |
| | | </el-row> |
| | | <el-row style="height: 50px;"> |
| | | <el-button type="primary" @click="changeProducts('191')" style="width: 100px" icon="el-icon-s-unfold">191</el-button> |
| | | <el-row style="height: 80px;"> |
| | | <el-button type="info" @click="changeProducts('191')" style="height: 50px; width: 130px; font-size: 20px; float: left" icon="el-icon-s-unfold">191</el-button> |
| | | </el-row> |
| | | <el-row style="height: 50px;"> |
| | | <el-button type="primary" @click="changeProducts('0JWF')" style="width: 100px" icon="el-icon-s-unfold">0JWF</el-button> |
| | | <el-row style="height: 80px;"> |
| | | <el-button type="info" @click="changeProducts('0JWF')" style="height: 50px; width: 130px; font-size: 20px; float: left" icon="el-icon-s-unfold">0JWF</el-button> |
| | | </el-row> |
| | | </el-card> |
| | | </el-col> |
| | |
| | | |
| | | <script> |
| | | import {listFormulaChild} from "@/api/main/bs/formulaChild/formulaChild"; |
| | | import {listStationConf,getIp} from "@/api/main/sc/stationConf"; |
| | | |
| | | export default { |
| | | name: "index", |
| | | data() { |
| | | return { |
| | | locationCode: "æªé
ç½®", |
| | | locationName: "æªé
置工ä½", |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | productCode: null, |
| | | }, |
| | | currentTime:'', |
| | | productCode: '2V91', |
| | | tableData: [{ |
| | | img: 'https://fuss10.elemecdn.com/e/5d/4a731a90594', |
| | |
| | | this.tableData = [] |
| | | }, |
| | | mounted() { |
| | | this.changeProducts(this.productCode) |
| | | this.getStationConf() |
| | | // this.changeProducts(this.productCode) |
| | | this.changeProducts("2V91") |
| | | this.getNowTime() |
| | | // this.autoShow() |
| | | }, |
| | | // computed: { |
| | | // currentTime: |
| | | // }, |
| | | methods: { |
| | | /** æ¥è¯¢å·¥ä½ç»ç«¯é
ç½®å表 */ |
| | | getStationConf() { |
| | | getIp().then(response => { |
| | | let queryParams = { |
| | | ipAddress: response.msg, |
| | | } |
| | | listStationConf(queryParams).then(response => { |
| | | this.locationName = response.rows[0].processesName |
| | | this.locationCode = response.rows[0].processesCode |
| | | }); |
| | | }); |
| | | }, |
| | | //è·åå½åæ¶é´ |
| | | getNowTime () { |
| | | let speed = 1000 |
| | | let that = this |
| | | let theNowTime = function () { |
| | | that.currentTime = that.timeNumber() |
| | | } |
| | | setInterval(theNowTime, speed) |
| | | }, |
| | | timeNumber () { |
| | | let today = new Date() |
| | | let date = today.getFullYear() + '-' + this.twoDigits(today.getMonth() + 1) + '-' + this.twoDigits(today.getDate()) |
| | | let time = this.twoDigits(today.getHours()) + ':' + this.twoDigits(today.getMinutes()) + ':' + this.twoDigits(today.getSeconds()) |
| | | return date + ' ' + time |
| | | }, |
| | | twoDigits (val) { |
| | | if (val < 10) return '0' + val |
| | | return val |
| | | }, |
| | | // å®æ¶è§¦å |
| | | autoShow() { |
| | | const _this = this |
| | | this.intervalId = setInterval(() => { |
| | | _this.setBg() |
| | | }, 2000) |
| | | }, 10000) |
| | | }, |
| | | setImg(index) { |
| | | this.address = this.tableData[index].address |
| | |
| | | for (let i = 0; i < this.tableData.length - 1; i++) { |
| | | if (document.getElementById('outerDiv' + i).style.background === 'yellow') { |
| | | this.setImg(i+1) |
| | | document.getElementById('outerDiv' + i).style.background = 'green' |
| | | document.getElementById('outerDiv' + i).style.background = 'lightgreen' |
| | | document.getElementById('outerDiv' + (i+1)).style.background = 'yellow' |
| | | return; |
| | | } |
| | |
| | | for (let i = 0; i < this.tableData.length; i++) { |
| | | if (document.getElementById('outerDiv' + i).style.background === 'yellow') { |
| | | this.setImg(i + index) |
| | | document.getElementById('outerDiv' + i).style.background = index < 0 ? 'white' : 'green' |
| | | document.getElementById('outerDiv' + i).style.background = index < 0 ? 'white' : 'lightgreen' |
| | | document.getElementById('outerDiv' + (i + index)).style.background = 'yellow' |
| | | return; |
| | | } |
| | |
| | | }, |
| | | changeProducts(val){ |
| | | |
| | | console.log("------æ´æ¢å¾ç",val) |
| | | this.productCode = val |
| | | const _this = this |
| | | |
| | |
| | | this.$nextTick(() => { |
| | | clearInterval(this.intervalId); |
| | | document.getElementById('outerDiv0').style.background = 'yellow' |
| | | for (let i = 1; i < this.tableData.length; i++){ |
| | | document.getElementById('outerDiv' + i).style.background = 'white' |
| | | } |
| | | this.setImg(0) |
| | | this.autoShow() |
| | | }) |
| | |
| | | <style scoped> |
| | | .outerDiv { |
| | | width: fit-content; |
| | | min-width: 100%; |
| | | min-width: 102%; |
| | | /*width: 300px;*/ |
| | | height: 50px; |
| | | margin-bottom: 10px; |
| | |
| | | |
| | | .centered { |
| | | text-align: center; |
| | | color: white; |
| | | font-weight: bold; |
| | | font-size: 20px; |
| | | } |
| | | .centerText{ |
| | | color: black; |
| | | font-weight: bold; |
| | | font-size: 40px; |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-top: 20px |
| | | } |
| | | ::v-deep .el-card__body{ |
| | | height: 100px; |
| | | } |
| | | |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-card class="box-card"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> |
| | | <el-form-item label-width="120" label="å·¥èºæµç¨ç¼ç " prop="routeCode"> |
| | | <el-input |
| | | v-model="queryParams.routeCode" |
| | | placeholder="请è¾å
¥å·¥èºæµç¨ç¼ç " |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item style="float: right"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | | <el-table border v-loading="loading" :data="dataList" v-if="dataList.length > 0"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column :show-overflow-tooltip='true' label="å·¥åç¼å·" width="130" align="center"> |
| | | <template slot-scope="scope"> |
| | | <router-link :to="{path: '/main/route-data/index/', query: {routeCode: scope.row.routeCode,routeId: scope.row.id} }" class="link-type"> |
| | | <span>{{ scope.row.routeCode }}</span> |
| | | </router-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :show-overflow-tooltip='true' label="产åå°ç³»å" width="130" align="center" prop="routeName"> |
| | | </el-table-column> |
| | | <el-table-column label="SNæµæ°´å·" width="130" align="center" prop="productCode"> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" width="160" align="center" prop="productName"> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦æå°" align="center" prop="version"> |
| | | </el-table-column> |
| | | <el-table-column label="æå°æ¶é´" align="center" prop="status"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-empty v-else> |
| | | <span slot="description">ææ æ°æ®</span> |
| | | </el-empty> |
| | | </el-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "index", |
| | | dicts: ['sys_normal_disable'], |
| | | data(){ |
| | | return{ |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | routeCode: null, |
| | | routeName: null, |
| | | productCode: null, |
| | | productName: null, |
| | | status: null, |
| | | dataSource: null, |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | methods:{ |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | <el-form-item style="margin-left: 14px" label="产åç¼å·" prop="productCode"> |
| | | <el-input v-model="queryParams.productCode" placeholder="请è¾å
¥äº§åç¼å·" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="订åç¼å·" prop="salesOrderCode"> |
| | | <el-input v-model="queryParams.salesOrderCode" placeholder="请è¾å
¥è®¢åç¼å·" clearable @keyup.enter.native="handleQuery"/> |
| | | <el-form-item label="æºå" prop="typeZ"> |
| | | <el-input v-model="queryParams.typeZ" placeholder="请è¾å
¥æºå" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="车é´ç¼å·" prop="workshopCode"> |
| | | <el-input v-model="queryParams.workshopCode" placeholder="请è¾å
¥è½¦é´ç¼å·" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="产线ç¼å·" prop="lineCode"> |
| | | <el-input v-model="queryParams.lineCode" placeholder="请è¾å
¥äº§çº¿ç¼å·" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: 7px" label-width="80" label="产åBOM" prop="bomCode"> |
| | | <el-input v-model="queryParams.bomCode" placeholder="请è¾å
¥äº§åBOM" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èºæµç¨" prop="routeCode"> |
| | | <el-input v-model="queryParams.routeCode" placeholder="请è¾å
¥å·¥èºæµç¨" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èºé
æ¹" prop="recipeCode"> |
| | | <el-input v-model="queryParams.recipeCode" placeholder="请è¾å
¥å·¥èºé
æ¹" clearable @keyup.enter.native="handleQuery"/> |
| | | <el-form-item label-width="130" label="éç¥åçææ¥æ" prop="dateConditions"> |
| | | <el-date-picker |
| | | v-model="queryParams.dateConditions" |
| | | type="datetimerange" |
| | | :picker-options="pickerOptions" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | align="right"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | |
| | | <!-- </el-col>--> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | type="success" |
| | | plain |
| | | icon="el-icon-download" |
| | | icon="el-icon-wind-power" |
| | | size="mini" |
| | | @click="getProductionNotice" |
| | | v-hasPermi="['om:productionOrde:receive']" |
| | | >æ¥æ¶</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-createUpdate" |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="CreatehandleUpdate" |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ç产订å" width="160" align="center"> |
| | | <template slot-scope="scope"> |
| | | <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type"> |
| | | <router-link :to="{path: '/main/orderScheduling-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type"> |
| | | <span>{{ scope.row.workOrderNo }}</span> |
| | | </router-link> |
| | | </template> |
| | |
| | | <i class="el-icon-s-order"></i> |
| | | {{titleName}} |
| | | </span> |
| | | <el-form ref="form" inline :model="form" :rules="CreateRules" label-width="80px"> |
| | | <el-form-item label="ç§ç±»" prop="typeZ"> |
| | | <el-input disabled v-model="form.typeZ" placeholder="请è¾å
¥ç§ç±»" /> |
| | | <el-form ref="form" inline :model="form" :rules="CreateRules" label-width="100px"> |
| | | <el-form-item label="æºå" prop="typeZ"> |
| | | <el-input disabled v-model="form.typeZ" placeholder="请è¾å
¥æºå" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æ" prop="dateTime"> |
| | | <el-date-picker clearable |
| | |
| | | <el-input type="number" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="请è¾å
¥èµ·å§ç¼å·" @input="handleCodeChange"/> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·æ¢ç¼å·" prop="startEndCode"> |
| | | <el-input disabled v-model="form.startEndCode"/> |
| | | <el-input type="textarea" disabled v-model="form.startEndCode"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | generateNumbers |
| | | } from "@/api/main/bs/orderScheduling/orderScheduling"; |
| | | import {listMaterial} from "@/api/main/bs/material/material"; |
| | | import {listModelNumber} from "@/api/main/bs/modelNumber/modelNumber"; |
| | | |
| | | export default { |
| | | name: "ProductionOrde", |
| | |
| | | flag: null, |
| | | adds:null, |
| | | productionNotice: null, |
| | | dateConditions: [], |
| | | }, |
| | | materialQueryParams: { |
| | | pageNum: 1, |
| | |
| | | year: '', |
| | | }, |
| | | markNo: '', |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: 'æè¿ä¸å¨', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: 'æè¿ä¸ä¸ªæ', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: 'æè¿ä¸ä¸ªæ', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }] |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | //æ¥ |
| | | dateTimeRule = dateTimeRule + day; |
| | | dateTimeRule = dateTimeRule + this.markNo; |
| | | this.form.dateTimeRule = dateTimeRule; |
| | | this.form.dateTimeRule = dateTimeRule;//æ¤å¤èµå¼ä¸å æºå |
| | | dateTimeRule = dateTimeRule + this.form.typeZ;//æ¤å¤å æºåï¼é¡ºåºä¸è½é¢ å |
| | | |
| | | //èµå¼èµ·å§ç¼ç |
| | | this.form.startEndCode = dateTimeRule + startCode + "----" + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') + " " + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | } |
| | | }, |
| | | |
| | | getProductionNotice(){ |
| | | getProductionNotice(this.queryParams).then(response => { |
| | | this.$modal.msgSuccess("æ¥æ¶æå"); |
| | | |
| | | this.$modal.msgSuccess(response.msg); |
| | | this.queryParams = {} |
| | | this.getList(); |
| | | }); |
| | |
| | | this.materialQueryParams.materialCode = response.data.productCode; |
| | | listMaterial(this.materialQueryParams).then(response => { |
| | | this.markNo = response.rows[0].mark |
| | | this.form.typeL = response.rows[0].typeL; |
| | | }); |
| | | this.form = response.data; |
| | | this.Createopen = true; |
| | |
| | | |
| | | /** çæç®±ä½æ¡ç æ交æé® */ |
| | | submitFormForBoxCode() { |
| | | let startCode = parseInt(this.form.startCode); |
| | | let queryParams = { |
| | | model: this.form.typeZ, |
| | | modelDate: this.form.dateTimeRule, |
| | | } |
| | | if(startCode>999){ |
| | | this.$message.error('èµ·å§ç¼å·è¶
åºæ大èå´ï¼è¯·è¾å
¥1-999çæ°åï¼'); |
| | | return; |
| | | }else if(startCode<1){ |
| | | this.$message.error('èµ·å§ç¼å·è¶
åºæå°èå´ï¼è¯·è¾å
¥1-999çæ°åï¼'); |
| | | return; |
| | | } |
| | | listModelNumber(queryParams).then(response => { |
| | | if(response.rows.length === 0){ |
| | | this.saveBoxCode() |
| | | }else { |
| | | let maxNumValue = response.rows[0].maxnumValue; |
| | | if(startCode<=maxNumValue){ |
| | | this.$message.error('ç®±ä½æ¡ç éå¤ï¼è¯·éæ°è¾å
¥èµ·å§ç¼å·ï¼'); |
| | | }else { |
| | | this.saveBoxCode() |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | saveBoxCode(){ |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-card class="box-card"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label-width="100" label="ç产éç¥å" prop="productName"> |
| | | <el-input v-model="queryParams.productionNotice" placeholder="请è¾å
¥ç产éç¥å" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label-width="80" label="ç产订å" prop="workOrderNo"> |
| | | <el-input v-model="queryParams.workOrderNo" placeholder="请è¾å
¥ç产订å" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="æºå" prop="typeZ"> |
| | | <el-input v-model="queryParams.typeZ" placeholder="请è¾å
¥æºå" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item style="float: right"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> |
| | | <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">é«çº§æ¥è¯¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> |
| | | <el-form-item style="margin-left: 14px" label="产åç¼å·" prop="productCode"> |
| | | <el-input v-model="queryParams.productCode" placeholder="请è¾å
¥äº§åç¼å·" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="ç产éç¥åå·" width="160" align="center" prop="productionNotice"> |
| | | </el-table-column> |
| | | <el-table-column label="ç产订å" width="160" align="center" prop="workOrderNo"> |
| | | </el-table-column> |
| | | <el-table-column label="æºå" width="160" align="center" prop="typeZ"> |
| | | </el-table-column> |
| | | <el-table-column label="产åç¼å·" width="150" align="center" prop="productCode"> |
| | | </el-table-column> |
| | | <el-table-column label="å·¥åç¶æ" align="center" prop="orderStatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="éæ±æ°é" align="center" prop="planQty"> |
| | | </el-table-column> |
| | | <el-table-column label="å·¥ä½ä¸" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="å·²å®æ" width="160" align="center" prop="actualQty"> |
| | | </el-table-column> |
| | | <el-table-column label="å·²æ¥åº" width="160" align="center" prop="scrapQty"> |
| | | </el-table-column> |
| | | <el-table-column label="å®æç" width="160" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="åæ ¼ç" width="160" align="center"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç产工å对è¯æ¡ --> |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <span slot="title"> |
| | | <i class="el-icon-s-order"></i> |
| | | {{titleName}} |
| | | </span> |
| | | <el-form ref="form" inline :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="å·¥åå·" prop="workOrderNo"> |
| | | <el-input v-model="form.workOrderNo" placeholder="请è¾å
¥ç产订å" /> |
| | | </el-form-item> |
| | | <el-form-item label="订åç¼å·" prop="salesOrderCode"> |
| | | <el-input v-model="form.salesOrderCode" placeholder="请è¾å
¥è®¢åç¼å·" /> |
| | | </el-form-item> |
| | | <el-form-item label="产åç¼å·" prop="productCode"> |
| | | <el-input v-model="form.productCode" placeholder="请éæ©äº§å" > |
| | | <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button> |
| | | </el-input> |
| | | <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect> |
| | | </el-form-item> |
| | | <el-form-item label="产åå称" prop="productName"> |
| | | <el-input v-model="form.productName" disabled placeholder="请è¾å
¥äº§åå称" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç§ç±»" prop="productName"> |
| | | <el-input v-model="form.typeZ" disabled placeholder="请è¾å
¥ç§ç±»" /> |
| | | </el-form-item> |
| | | <el-form-item label="å®é
æ°é" prop="actualQty"> |
| | | <el-input v-model="form.actualQty" placeholder="请è¾å
¥å®é
æ°é" /> |
| | | </el-form-item> |
| | | <el-form-item label="车é´ç¼å·" prop="workshopCode"> |
| | | <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请éæ©è½¦é´ç¼å·"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.workshopCode" |
| | | :label="item.workshopName" |
| | | :value="item.workshopCode"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -15px" label="产线ç¼å·" prop="lineCode"> |
| | | <el-select style="width: 93%" v-model="form.lineCode" placeholder="请éæ©äº§çº¿ç¼å·"> |
| | | <el-option |
| | | v-for="item in lineOptions" |
| | | :key="item.lineCode" |
| | | :label="item.lineName" |
| | | :value="item.lineCode"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èºæµç¨" prop="routeCode"> |
| | | <el-input v-model="form.routeCode" disabled placeholder="请è¾å
¥å·¥èºæµç¨" /> |
| | | </el-form-item> |
| | | <el-form-item label="产åBOM" prop="bomCode"> |
| | | <el-input v-model="form.bomCode" disabled placeholder="请è¾å
¥äº§åBOM" /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èºé
æ¹" prop="recipeCode"> |
| | | <el-input v-model="form.recipeCode" placeholder="请è¾å
¥å·¥èºé
æ¹" /> |
| | | </el-form-item> |
| | | <el-form-item label="计åæ°é" prop="planQty"> |
| | | <el-input v-model="form.planQty" placeholder="请è¾å
¥è®¡åæ°é" /> |
| | | </el-form-item> |
| | | <el-form-item label="éæ±æ¥æ" prop="demandDate"> |
| | | <el-date-picker style="width: 88%" clearable |
| | | v-model="form.demandDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请éæ©éæ±æ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -30px" label="å¤æ³¨" prop="remarks"> |
| | | <el-input v-model="form.remarks" placeholder="请è¾å
¥å¤æ³¨" /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 10px" label-width="120" label="计åå¼å§æ¶é´" prop="planStartTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planStartTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请éæ©è®¡åå¼å§æ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 76px" label-width="120" label="计åç»ææ¶é´" prop="planEndTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planEndTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请éæ©è®¡åç»ææ¶é´"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body> |
| | | <span slot="title"> |
| | | <i class="el-icon-s-order"></i> |
| | | {{titleName}} |
| | | </span> |
| | | <el-form ref="form" inline :model="form" :rules="CreateRules" label-width="80px"> |
| | | <el-form-item label="ç§ç±»" prop="typeZ"> |
| | | <el-input disabled v-model="form.typeZ" placeholder="请è¾å
¥ç§ç±»" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æ" prop="dateTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.dateTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请éæ©æ¥æ" @input="handleCodeChange"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item class="hidden-form-item" label="æ¥æè§å" prop="dateTimeRule"> |
| | | <el-input v-model="form.dateTimeRule"/> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§ç¼å·" prop="startCode"> |
| | | <el-input type="number" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="请è¾å
¥èµ·å§ç¼å·" @input="handleCodeChange"/> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·æ¢ç¼å·" prop="startEndCode"> |
| | | <el-input disabled v-model="form.startEndCode"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitFormForBoxCode">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo"; |
| | | import { listWorkshop } from "@/api/main/bs/workshop/workshop"; |
| | | import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom"; |
| | | import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute"; |
| | | import ItemSelect from "@/components/itemSelect/single.vue"; |
| | | import { addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; |
| | | import { |
| | | listOrderScheduling, |
| | | getOrderScheduling, |
| | | delOrderScheduling, |
| | | addOrderScheduling, |
| | | updateOrderScheduling, |
| | | generateNumbers |
| | | } from "@/api/main/bs/orderScheduling/orderScheduling"; |
| | | import {listMaterial} from "@/api/main/bs/material/material"; |
| | | import {listModelNumber} from "@/api/main/bs/modelNumber/modelNumber"; |
| | | |
| | | export default { |
| | | name: "ProductionOrde", |
| | | dicts: ['order_state','year','month','day'], |
| | | components: { |
| | | ItemSelect , |
| | | }, |
| | | data() { |
| | | return { |
| | | titleName: '', |
| | | options: [], |
| | | lineOptions: [], |
| | | outputArray: [], |
| | | showFlag:false, |
| | | advancedShowSearch: false, |
| | | workOrder: { |
| | | status: 'ss' |
| | | }, |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // éä¸æ°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | move: true, |
| | | selectedRowIndex: -1, // åå¨éä¸è¡çç´¢å¼ |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç产工åè¡¨æ ¼æ°æ® |
| | | productionOrdeList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | Createopen: false, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | workOrderNo: null, |
| | | salesOrderCode: null, |
| | | productCode: null, |
| | | productName: null, |
| | | workshopCode: null, |
| | | lineCode: null, |
| | | routeCode: null, |
| | | bomCode: null, |
| | | recipeCode: null, |
| | | orderStatus: "2", |
| | | custom: null, |
| | | marketAreaCode: null, |
| | | softwareVersionCode: null, |
| | | productCompanyCode: null, |
| | | frontEndId: 0, |
| | | idNums: null, |
| | | typeZ: null, |
| | | flag: null, |
| | | adds:null, |
| | | productionNotice: null, |
| | | }, |
| | | materialQueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | materialCode: null, |
| | | }, |
| | | |
| | | // 表ååæ° |
| | | form: {}, |
| | | updateStatusParameter: { |
| | | id: null, |
| | | orderStatus: null |
| | | }, |
| | | // 表åæ ¡éª |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: "IDä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | }, |
| | | CreateRules: { |
| | | day: [ |
| | | { required: true, message: "ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | month: [ |
| | | { required: true, message: "ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | year: [ |
| | | { required: true, message: "ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | dateTime: [ |
| | | { required: true, message: "ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | startCode: [ |
| | | { required: true, message: "ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | ], |
| | | }, |
| | | change: { |
| | | day: '', |
| | | month: '', |
| | | year: '', |
| | | }, |
| | | markNo: '', |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.initWorkshop(); |
| | | }, |
| | | methods: { |
| | | //æ¥ææå¼å§ç¼å·è¾å
¥æ¶ |
| | | handleCodeChange(data){ |
| | | let dateTime = this.form.dateTime; |
| | | let planQty = this.form.planQty; |
| | | let startCode = this.form.startCode |
| | | if(dateTime !== null && dateTime !== undefined |
| | | && startCode !== null && startCode !== undefined) { |
| | | let dateTimes = dateTime.split("-"); |
| | | let year = dateTimes[0]; |
| | | let month = dateTimes[1]; |
| | | let day = dateTimes[2]; |
| | | let dictYear = this.dict.type.year; |
| | | let dictMonth = this.dict.type.month; |
| | | let startCode = this.form.startCode |
| | | let dateTimeRule = ""; |
| | | |
| | | //å¹´ |
| | | for (let i = 0; i < dictYear.length; i++) { |
| | | if (year === dictYear[i].label) { |
| | | dateTimeRule = dictYear[i].value |
| | | // this.form.startEndCode = startEndCode; |
| | | } |
| | | } |
| | | //æ |
| | | for (let i = 0; i < dictMonth.length; i++) { |
| | | if (month === dictMonth[i].label) { |
| | | dateTimeRule = dateTimeRule + dictMonth[i].value; |
| | | } |
| | | } |
| | | //æ¥ |
| | | dateTimeRule = dateTimeRule + day; |
| | | dateTimeRule = dateTimeRule + this.markNo; |
| | | this.form.dateTimeRule = dateTimeRule; |
| | | //èµå¼èµ·å§ç¼ç |
| | | this.form.startEndCode = dateTimeRule + startCode + "----" + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | } |
| | | }, |
| | | |
| | | getProductionNotice(){ |
| | | getProductionNotice(this.queryParams).then(response => { |
| | | this.$modal.msgSuccess("æ¥æ¶æå"); |
| | | this.queryParams = {} |
| | | this.getList(); |
| | | }); |
| | | }, |
| | | //æ°ç»çæ |
| | | changeDay(day){ |
| | | this.change.day = day; |
| | | let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty; |
| | | this.form.adds = adds |
| | | }, |
| | | changeMonth(day){ |
| | | this.change.month = day; |
| | | let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty; |
| | | this.form.adds = adds |
| | | }, |
| | | changeYear(day){ |
| | | this.change.year = day; |
| | | let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty; |
| | | this.form.adds = adds |
| | | }, |
| | | moveUp(row, val){ |
| | | console.log(val) |
| | | const ids = row.id || this.ids |
| | | let str = JSON.stringify(ids); |
| | | let num = BigInt(str.replace(/[\[\]]/g, '')); |
| | | this.queryParams.frontEndId = num |
| | | this.queryParams.idNums = ids |
| | | this.queryParams.flag = val |
| | | upDownMove(this.queryParams).then(response => { |
| | | this.$modal.msgSuccess("移å¨æå"); |
| | | this.getList(); |
| | | }); |
| | | }, |
| | | initWorkshop(){ |
| | | listWorkshop(this.queryParams).then(response => { |
| | | this.options = response.rows; |
| | | }); |
| | | }, |
| | | // å¨è¿éç¼åå¤çéä¸äºä»¶çé»è¾ |
| | | |
| | | |
| | | //ç©æéæ©å¼¹åºæ¡ |
| | | onItemSelected(obj){ |
| | | if(obj !== undefined && obj !== null){ |
| | | let productCode = obj.materialCode; |
| | | this.form.productCode = productCode; |
| | | this.form.productName = obj.materialName; |
| | | this.form.typeZ = obj.typeZ; |
| | | this.typeL = obj.typeZ; |
| | | this.queryParams.productCode = productCode; |
| | | this.queryParams.typeZ = typeZ |
| | | listTechnologyRoute(this.queryParams).then(response => { |
| | | this.form.routeCode = response.rows[0].routeCode; |
| | | }); |
| | | listProductBom(this.queryParams).then(response => { |
| | | this.form.bomCode = response.rows[0].bomCode; |
| | | }); |
| | | } |
| | | }, |
| | | handleSelectProduct(){ |
| | | this.$refs.itemSelect.showFlag = true; |
| | | }, |
| | | advancedQuery(){ |
| | | this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; |
| | | }, |
| | | handleCommand(status,id) { |
| | | console.log(status) |
| | | this.updateStatusParameter.id = id; |
| | | this.updateStatusParameter.orderStatus = status; |
| | | updateProductionOrde(this.updateStatusParameter).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢ç产工åå表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listProductionOrde(this.queryParams).then(response => { |
| | | this.productionOrdeList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.Createopen = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | id: null, |
| | | workOrderNo: null, |
| | | salesOrderCode: null, |
| | | productCode: null, |
| | | productName: null, |
| | | workshopCode: null, |
| | | lineCode: null, |
| | | routeCode: null, |
| | | bomCode: null, |
| | | recipeCode: null, |
| | | planQty: null, |
| | | actualQty: null, |
| | | badQty: null, |
| | | scrapQty: null, |
| | | repairQty: null, |
| | | actualOnlineQty: null, |
| | | onlineCompletionMark: null, |
| | | demandDate: null, |
| | | planStartTime: null, |
| | | planEndTime: null, |
| | | actualStartTime: null, |
| | | actualEndTime: null, |
| | | serialNumber: null, |
| | | orderStatus: null, |
| | | createTime: null, |
| | | updateTime: null, |
| | | createUser: null, |
| | | updateUser: null, |
| | | remarks: null, |
| | | streamNumber: null, |
| | | custom: null, |
| | | marketAreaCode: null, |
| | | softwareVersionCode: null, |
| | | productCompanyCode: null, |
| | | spareField1: null, |
| | | spareField2: null, |
| | | spareField3: null, |
| | | typeZ: null, |
| | | spareField4: null, |
| | | adds:null |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡éä¸æ°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.move = selection.length!==1 |
| | | if(!selection.length){ |
| | | this.single = true |
| | | this.multiple = true |
| | | }else { |
| | | if(selection[0].orderStatus === '1' && selection.length === 1){ |
| | | this.single = false |
| | | this.multiple = false |
| | | } |
| | | } |
| | | |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.initWorkshop(); |
| | | this.reset(); |
| | | this.open = true; |
| | | this.titleName = "æ·»å ç产订å"; |
| | | }, |
| | | /** åæ¥æé®æä½ */ |
| | | CreatehandleUpdate(Row) { |
| | | this.initWorkshop(); |
| | | this.reset(); |
| | | const id = Row.id || this.ids |
| | | getProductionOrde(id).then(response => { |
| | | console.log(response.data) |
| | | console.log(response.data.productCode) |
| | | this.materialQueryParams.materialCode = response.data.productCode; |
| | | listMaterial(this.materialQueryParams).then(response => { |
| | | this.markNo = response.rows[0].mark |
| | | }); |
| | | this.form = response.data; |
| | | this.Createopen = true; |
| | | this.titleName = "çæç®±ä½æ¡ç "; |
| | | // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.initWorkshop(); |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getProductionOrde(id).then(response => { |
| | | console.log(response.data) |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.titleName = "ä¿®æ¹ç产订å"; |
| | | }); |
| | | }, |
| | | /** æ交æé® */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateProductionOrde(this.form).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addProductionOrde(this.form).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** çæç®±ä½æ¡ç æ交æé® */ |
| | | submitFormForBoxCode() { |
| | | let startCode = parseInt(this.form.startCode); |
| | | let queryParams = { |
| | | model: this.form.typeZ, |
| | | modelDate: this.form.dateTimeRule, |
| | | } |
| | | listModelNumber(queryParams).then(response => { |
| | | if(response.rows.length === 0){ |
| | | this.saveBoxCode() |
| | | }else { |
| | | let maxNumValue = response.rows[0].maxnumValue; |
| | | if(startCode<maxNumValue){ |
| | | this.$message.error('æ°å»ºçä¸è½æ¯æ¥è¯¢åºçå°'); |
| | | return; |
| | | }else { |
| | | this.saveBoxCode() |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | saveBoxCode(){ |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | addOrderSchedulingForBoxCode(this.form).then(response => { |
| | | this.$modal.msgSuccess("ä¿åæå"); |
| | | this.Createopen = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤ç产订åç¼å·ä¸º"' + ids + '"çæ°æ®é¡¹ï¼').then(function() { |
| | | return delProductionOrde(ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å é¤æå"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** 导åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('om/productionOrde/export', { |
| | | ...this.queryParams |
| | | }, `productionOrde_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .hidden-form-item { |
| | | display: none; |
| | | } |
| | | </style> |